型別運算子 instanceof

2022-09-09 04:54:09 字數 2819 閱讀 6477

示例 #1 對類使用instanceof

<?php

class

myclass

class

notmyclass

$a = new

myclass;

var_dump($a

instanceof myclass);

var_dump($a

instanceof notmyclass);

?>

以上例程會輸出:

bool(true

)bool(

false)

示例 #2 對繼承類使用instanceof

<?php

class

parentclass

class myclass extends

parentclass

$a = new

myclass;

var_dump($a

instanceof myclass);

var_dump($a

instanceof parentclass);

?>

以上例程會輸出:

bool(true

)bool(

true)

示例 #3 使用instanceof檢查物件不是某個類的例項

<?php

class

myclass

$a = new

myclass;

var_dump(!($a

instanceof stdclass));

?>

以上例程會輸出:

bool(true)

示例 #4 對介面使用instanceof

<?php

inte***ce

myinte***ce

class myclass implements

myinte***ce

$a = new

myclass;

var_dump($a

instanceof myclass);

var_dump($a

instanceof myinte***ce);

?>

以上例程會輸出:

bool(true

)bool(

true)

示例 #5 對其它變數使用instanceof

<?php

inte***ce

myinte***ce

class myclass implements

myinte***ce

$a = new

myclass;

$b = new

myclass;

$c = 'myclass';

$d = 'notmyclass';

var_dump($a instanceof $b); //

$b is an object of class myclass

var_dump($a instanceof $c); //

$c is a string 'myclass'

var_dump($a instanceof $d); //

$d is a string 'notmyclass'

?>

以上例程會輸出:

bool(true

)bool(

true

)bool(

false)

示例 #6 用instanceof檢測其它變數

<?php

$a = 1;

$b = null

;$c = imagecreate(5, 5);

var_dump($a instanceof stdclass); //

$a is an integer

var_dump($b instanceof stdclass); //

$b is null

var_dump($c instanceof stdclass); //

$c is a resource

var_dump(false

instanceof stdclass);

?>

以上例程會輸出:

bool(false

)bool(

false

)bool(

false

)php fatal error: instanceof expects an object instance, constant given

示例 #7 使用instanceof測試常量

<?php

var_dump(false

instanceof stdclass);

?>

以上例程在 php 7.3 中的輸出:

bool(false)

instanceof在功能上有個 類似的變體 is_a()。

關於instanceof運算子

instanceof 運算子是用來在執行時指出左邊物件是否是右邊特定類的乙個例項。通過返回乙個布林值來指出,這個物件是否是這個特定類或者是它的子類的乙個例項。public class test 由上面 很容易看明白 str是string及object的例項,所以輸出true。注意 1 null值不是...

關係運算子 instanceof

關係運算子 instanceof a instanceof animal 這個式子的結果是乙個布林表示式 a為物件變數,animal是類名。上面語句是判定a是否可以貼animal標籤。如果可以貼則返回true,否則返回false。在上面的題目中 a instanceof animal返回 true,...

詳解instanceof 運算子

instanceof運算子的前乙個運算元通常是乙個引用型別變數,後乙個運算元通常是乙個類,也可以是介面,用於判斷前面的物件是否是後面的類,或者是其子類 實現類的例項。如果是,則返回的是true,否則返回的是false。注意 在使用instanceof的時候需要注意,instanceof運算子前面的運...