PHP is_a()函數
is_a()函數是PHP中的內置函數,用于檢查給定對象是否屬于給定類;它還檢查給定的類是否是給定對象的父類之一。
基本語法:
is_a( $object, $html' target='_blank'>class_name, $allow_string )
參數:is_a()函數可以接受以下三個參數
● object:用于保存測試對象。
● class_name:用于保存類名。
● allow_string:如果設置的值為False,則不允許將字符串類名稱作為對象。
返回值:如果對象屬于給定的類,或者此類作為其父類之一,則is_a()函數返回True,否則將返回False值。
下面通過代碼示例來了解一下is_a()函數。
?php class hello { var $store = Hello PHP! $PHP= new hello(); // 檢查$PHP是否是hello類的對象if (is_a($PHP, hello )) { echo Yes ?
輸出:
Yes
PHP instanceof運算符
在PHP中使用instanceof運算符來查明對象是否是類的實例化實例。
基本語法:
$a instanceof MyClass
操作數:instanceof運算符包含以下兩個操作數
● $a:表示對象。
● MyClass:表示是一個類名。
返回值:如果對象屬于該給定的類,或者將此類作為其父類之一,則返回True,否則返回False值。
下面通過代碼示例來了解一下instanceof運算符。
?php class hello { var $store = Hello PHP! $PHP= new hello(); // 檢查$PHP是否是hello類的對象if ($PHP instanceof hello) { echo Yes ?
輸出:
Yes
is_a()函數和instanceof運算符之間的區別
● is_a()是一個函數,而instanceof是一個語言結構。is_a()函數將顯著變慢,因為它具有執行函數調用的所有開銷。
● 在函數回調的情況下(如array_map),因為instanceof不是函數,它是一種語言構造,所以它不能用作回調。但,回調可以在is_a()函數中使用。
● InstanceOf中直接類名的使用時間短于is_a()函數。
例:
//語法短(比較)$a instanceof MyClassis_a( $a, MyClass::class )
● is_a()是一個函數,它將一個對象作為參數1,將一個字符串作為參數2,而instanceof將一個對象作為參數1,并且可以將類名、對象實例或類標識符(不帶引號的類名)作為參數2。
is_a()的示例:
//只有這樣才能調用它is_a($object,$string);
instanceof示例:
//對象實例 $object instanceof $otherObject; //字符串類名$object instanceof $string;//類的標識符$object instanceof ClassName;
以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。更多精彩內容大家可以關注php 相關教程欄目?。?!
以上就是PHP中的is_a()函數和instanceof之間有什么區別?的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答