instanceof是php5中新增的關鍵字,它的作用有2個:
(1)判斷一個對象是否是某個類的執行個體,(2)判斷一個對象是否實現了某個介面。
一般格式為:ObjectName instanceof ClassName
(1)判斷一個對象是否是某個類的執行個體
下面針對第一種用法我們來看個執行個體:
首先建立一個父類,再建立一個子類去繼承父類。執行個體化子類對象,然後去判斷對象是不是屬於子類,再判斷是不是屬於父類。
<?phpheader("content-type:text/html;charset=utf-8");class Itbook{}class phpBook extends Itbook{private $bookname;}$phpbook = new phpBook();if($phpbook instanceof phpBook){echo '$phpbook屬於phpBook類<br/>';}if($phpbook instanceof Itbook){echo '$phpbook屬於Itbook類';}
(2)判斷一個對象是否實現了某個介面
上面是關於instanceof的第一種用法執行個體,下面我們寫個有關第二種用法的執行個體:
interface ExampleInterface{public function interfaceMethod();}class ExampleClass implements ExampleInterface{public function interfaceMethod(){return 'php中文網';}}$exampleInstance = new ExampleClass();if($exampleInstance instanceof ExampleInterface){echo '我在php中文網';}else{echo '你也一起來吧';}
代碼解讀:
先建立一個介面類ExampleInterface,定義方法,再建立個子類介面,定義方法。接著執行個體化介面,然後判斷,其實和第一種用法差不多,只是關鍵字變化一下,別的都一樣。