PHP的instanceof關鍵字

lankecms發表於2014-08-14

PHP5的另一個新成員是instdnceof關鍵字。使用這個關鍵字可以確定一個物件是類的例項、類的子類,還是實現了某個特定介面,並進行相應的操作。在某些情況下,我們希望確定某個類是否特定的型別,或者是否實現了特定的介面。instanceof操作符非常適合完成這個任務。instanceof操作符檢查三件事情:例項是否某個特定的型別,例項是否從某個特定的型別繼承,例項或者他的任何祖先類是否實現了特定的介面。例如,假設希望瞭解名為manager的物件是否為類Employee的例項:

1 $manager new Employee();
2
3 if ($manager instanceof Employee)
4     echo "Yes";

有兩點值得注意。首先,類名沒有任何定界符(引號)。使用定界符將導致語法錯誤。其次,如果比較失敗,指令碼將退出執行。instanceof關鍵字在同時處理多個物件時特別有用。例如,你可能要重複地呼叫某個函式,但希望根據物件型別調整函式的行為。可以使用case語句和instanceof關鍵字來實現這個目標。

01 class test2{}
02 class test{}
03 class testChilern Extends test{}
04  
05 $a new test2();
06 $m new test();
07  
08 $i = ($m instanceof test);
09 if($i)
10     echo '$m是類test的例項!<br />'// get this value
11      
12 switch ($a instanceof test){
13     case true :
14         echo 'YES<br />';
15         break;
16          
17     case false :
18         echo 'No<br />'//get this value
19         break;
20 }
21  
22 $d=new testChilern();
23 if($d instanceof test)echo '$d是類test的子類!<br />'// get this value


轉:http://www.nowamagic.net/librarys/posts/php/28

相關文章