2014-05-21 18 views
2

在PHP中有兩類: class parentTroll {...}class troll extends parentTroll {...}如何檢查instanceof父類?

再有就是一個對象$troll = new troll();

如何檢查$troll instanceof parentTroll?此行現在返回false。

回答

8

下面的例子返回true:

class parentTroll {} 
class troll extends parentTroll {} 
$troll = new troll(); 

var_dump($troll instanceof parentTroll); 

輸出:

boolean true 

您還可以使用ReflectionClass

var_dump((new ReflectionClass($troll))->getParentClass()->getName() == 'parentTroll'); 
2

文檔不同意

請參閱http://www.php.net/manual/en/language.operators.type.php

對我的代碼進行測試也是如此。

+0

你能解釋它是如何不同意的嗎?它看起來像在例子#2中的父類一樣:「使用帶有繼承類的instanceof」 –

+2

「這條線現在返回false」是我不同意的。它實際上返回true(正如接受的答案也表示)。 –