instanceof是php5新增的關鍵字,它的作用有2個:(1)判斷一個物件是否是某個類別的實例,(2)判斷一個物件是否實作了某個介面。
一般格式為:ObjectName instanceof ClassName
(1)判斷一個物件是否是某個類別的實例
下面針對第一種用法我們來看個實例:
先建立一個父類,再建立一個子類別去繼承父類別。實例化子類對象,然後去判斷對像是不是屬於子類,再判斷是不是屬於父類。
<?php header("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,定義方法,再建立個子類別接口,定義方法。接著實例化接口,然後判斷,其實和第一種用法差不多,只是關鍵字變化一下,別的都一樣。
以上是php物件導向之instanceof關鍵字的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!