- 相關(guān)推薦
PHP語(yǔ)言類型運(yùn)算符
運(yùn)算符,用于執(zhí)行程序代碼運(yùn)算,會(huì)針對(duì)一個(gè)以上操作數(shù)項(xiàng)目來進(jìn)行運(yùn)算。下面是關(guān)于PHP中類型運(yùn)算符的介紹, 希望對(duì)大家有所幫助,更多消息請(qǐng)關(guān)注應(yīng)屆畢業(yè)生網(wǎng)。
instanceof 用于確定一個(gè) PHP 變量是否屬于某一類 class 的實(shí)例:
Example #1 instanceof 使用示例
<?php
class MyClass
{
}
class NotMyClass
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof NotMyClass);
?>
以上例程會(huì)輸出:
bool(true)
bool(false)
instanceof 也可用來確定一個(gè)變量是不是繼承自某一父類的子類的實(shí)例: can also be used to determine whether a variable is an instantiated object of a class that inherits from a parent class:
Example #2 instanceof 與繼承類示例
<?php
class ParentClass
{
}
class MyClass extends ParentClass
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof ParentClass);
?>
以上例程會(huì)輸出:
bool(true)
bool(true)
檢查一個(gè)對(duì)象 不是 某個(gè)類的實(shí)例,可以使用 邏輯運(yùn)算符 not。
Example #3 使用instanceof檢查對(duì)象 不是 某一類的實(shí)例
<?php
class MyClass
{
}
$a = new MyClass;
var_dump(!($a instanceof stdClass));
?>
以上例程會(huì)輸出:
bool(true)
最后,instanceof也可用于確定一個(gè)變量是不是實(shí)現(xiàn)了某個(gè)接口的對(duì)象的實(shí)例:
Example #4 Using instanceof for class
<?php
interface MyInterface
{
}
class MyClass implements MyInterface
{
}
$a = new MyClass;
var_dump($a instanceof MyClass);
var_dump($a instanceof MyInterface);
?>
以上例程會(huì)輸出:
bool(true)
bool(true)
雖然 instanceof 通常直接與類名一起使用,但也可以使用對(duì)象或字符串變量:
Example #5 Using instanceof with other variables
<?php
interface MyInterface
{
}
class MyClass implements MyInterface
{
}
$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'
?>
以上例程會(huì)輸出:
bool(true) bool(true) bool(false)
然而 instanceof 的使用還有一些陷阱必須了解。在 PHP 5.1.0之前,如果要檢查的類名稱不存在,instanceof 會(huì)調(diào)用 __autoload()。另外,如果該類沒有被裝載則會(huì)產(chǎn)生一個(gè)致命錯(cuò)誤?梢酝ㄟ^使用動(dòng)態(tài)類引用(dynamic class reference)或用一個(gè)包含類名的字符串變量來避開這種問題:
Example #6 避免 PHP 5.0 中 instanceof 引起的類名查找和致命錯(cuò)誤問題
<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); // no fatal error here
?>
以上例程會(huì)輸出:
bool(false)
instanceof 運(yùn)算符是 PHP 5 引進(jìn)的。在此之前用 is_a(),但是 is_a() 已經(jīng)過時(shí)了,最好用instanceof。
【PHP語(yǔ)言類型運(yùn)算符】相關(guān)文章:
PHP語(yǔ)言:數(shù)組運(yùn)算符11-01
PHP語(yǔ)言的數(shù)字類型10-13
PHP 數(shù)據(jù)類型08-31
PHP的數(shù)據(jù)類型08-03
php入門知識(shí):運(yùn)算符使用介紹09-07
PHP錯(cuò)誤類型及屏蔽方法07-26