php instanceof 和 is_a()

instanceof 運算符 和 is_a() 方法都是判斷:某對象是否屬于該類 或 該類是此對象的父類 或 是否實現了某個接口
是的話返回 TRUE,不是的話返回 FALSE

區別:
instanceof 運算符是 PHP 5 引進的。在此之前用 is_a(),但是后來 is_a() 被廢棄而用 instanceof 替代了。
注意:
PHP 5.3.0 起,又恢復使用 is_a() 了。

總結:
現在PHP的服務環境普遍都使用PHP5.0+了,所以盡量使用 instanceof 來代替 is_a()
綜上,如果你不知道你的服務器環境,那么建議你使用instanceof,以免造成不必要的麻煩

bool is_a ( object $object , string $class_name )

第一種用法:

<?php
$obj = new A();
if ($obj instanceof A) {
   echo 'A';
}
第二種用法:

<?php
interface ExampleInterface
{
     public function interfaceMethod();
 }
 
 class ExampleClass implements ExampleInterface
{
     public function interfaceMethod()
     {
         return 'Hello World!';
     }
 }
 
$exampleInstance = new ExampleClass();
 
 if($exampleInstance instanceof ExampleInterface){
     echo 'Yes, it is';
 }else{
     echo 'No, it is not';
} 
?>
 
輸出結果:Yes, it is
<?php
class WidgetFactory
{
  var $oink = 'moo';
}

$WF = new WidgetFactory();

if (is_a($WF, 'WidgetFactory')) {
  echo "yes, \$WF is still a WidgetFactory\n";
}
?>
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.認識php php是服務端嵌入到HTML中的腳本語言。php的功能包括但不限于: 收集表單數據 生成動態網頁 ...
    楠哥哥_0b86閱讀 867評論 3 1
  • PHP7 已經出來1年了,PHP7.1也即將和大家見面,這么多好的特性,好的方法,為什么不使用呢,也希望PHP越來...
    夢幻_78af閱讀 2,128評論 1 10
  • 概要 64學時 3.5學分 章節安排 電子商務網站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,313評論 0 3
  • 去年的7月份一個偶然的機會我與為公中國結緣,那個時候還叫老丁解惑,因為那個時候自己的疑惑很多,所以看到老丁解惑就毫...
    富足喜樂的李彥慧閱讀 850評論 7 6
  • 可愛 活力 勇敢堅強 漂亮 能干(劉濤) 永遠用特殊的思維方式想問題 另辟蹊徑去解決問題 追求完美(決定做的事情 ...
    liftRock閱讀 185評論 0 0