在先前的文章中為大家帶來了《你必須了解PHP中什麼是抽象類別和抽象方法》,其中詳細介紹了PHP中的抽象類別和抽象方法相關知識,本篇我們來看看PHP怎麼去判斷物件是否屬於一個類,希望對大家有幫助!
在PHP中想要去判斷物件是否屬於一個類別就需要透過 instanceof
,使用instanceof
關鍵字可以確定一個物件是類別的實例、類別的子類,還是實作了某個特定接口,並進行相應的操作。這就可以用來判斷物件是否屬於某一類,它的語法格式如下:
对象名 instanceof 类名;
#判斷一個物件是否屬於某個類別
想要判斷一個物件是否屬於某個類,那就透過instanceof關鍵字,依照文法格式,如果該物件屬於這個類,它會回傳true;如果不屬於這一類,它會回傳flase。
接下來我們透過一個範例來看一下,一個物件是否屬於某個類別。範例如下:
<?php class study{ } class study1{ } $obj = new study; var_dump($obj instanceof study); echo '<br>'; var_dump($obj instanceof study1); ?>
輸出結果:
#由上述結果可以看出,被偵測的物件屬於study類,傳回的結果是true,被偵測的物件不屬於study1類,所以回傳了flase。因此透過instanceof能夠判斷一個物件是否屬於某個類別。
判斷一個物件是否屬於某個父類別的子類別
透過上述的案例我們已經能夠判斷一個物件是否屬於一個類別了,不僅如此,透過instanceof還能夠判斷一個物件是不是繼承自某個父類的子類,同理如果被偵測的物件屬於這個父類的子類的話,傳回的結果是true,如果被偵測的物件不屬於這個父類別的子類別的話,回傳的結果是flase。
接下來我們透過範例來看一下,範例如下:
<?php class study{ } class study1 extends study{ } $obj = new study1; var_dump($obj instanceof study); echo '<br>'; var_dump($obj instanceof study1); ?>
輸出結果:
由上述結果看出,透過instanceof也能夠判斷一個物件是不是繼承自某個父類別的子類別。
判斷一個物件是否屬於一個介面的物件
我們也可以透過instanceof 用來確定一個變數是不是實作了某個接口的對象,與上述中的情況同理,如果輸出結果為true,表示該對象屬於此接口,如果輸出結果為flase,表示該對像不屬於此接口。
我們透過範例來看一下,範例如下:
<?php interface study{ } class study1 implements study{ } $obj = new study1; var_dump($obj instanceof study); echo '<br>'; var_dump($obj instanceof study1); ?>
輸出結果:
#上述事例中,透過instanceof判斷了一個變數是不是某個介面的物件。
當判斷的對像不存在
我們還有一種情況需要注意的就是,如果被偵測的變數不是對象,那就回傳的結果有什麼改變嗎,會不會有什麼影響。 instanceof並不會報錯而是會直接回到flase。
我們透過範例看一下,範例如下:
<?php class study{ } class study1{ } $obj = new study; var_dump($obj instanceof test); echo '<br>'; var_dump($obj instanceof demo); ?>
輸出結果:
由上述範例看出,被監測的變數不是對象,系統並沒有報錯,而是回傳了flase。
大家如果有興趣的話,可以點選《PHP影片教學》進行更多關於PHP知識的學習。
以上是PHP中怎麼去判斷物件是否屬於一個類別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!