PHP語(yǔ)言類(lèi)型運(yùn)算符
運(yùn)算符,用于執(zhí)行程序代碼運(yùn)算,會(huì)針對(duì)一個(gè)以上操作數(shù)項(xiàng)目來(lái)進(jìn)行運(yùn)算。下面是關(guān)于PHP中類(lèi)型運(yùn)算符的介紹, 希望對(duì)大家有所幫助,更多消息請(qǐng)關(guān)注應(yīng)屆畢業(yè)生網(wǎng)。
instanceof 用于確定一個(gè) PHP 變量是否屬于某一類(lèi) 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 也可用來(lái)確定一個(gè)變量是不是繼承自某一父類(lèi)的子類(lèi)的實(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 與繼承類(lèi)示例
<?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è)類(lèi)的實(shí)例,可以使用 邏輯運(yùn)算符 not。
Example #3 使用instanceof檢查對(duì)象 不是 某一類(lèi)的實(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 通常直接與類(lèi)名一起使用,但也可以使用對(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); /pic/div>
var_dump($a instanceof $c); /pic/div>
var_dump($a instanceof $d); /pic/div>
?>
以上例程會(huì)輸出:
bool(true) bool(true) bool(false)
然而 instanceof 的使用還有一些陷阱必須了解。在 PHP 5.1.0之前,如果要檢查的類(lèi)名稱(chēng)不存在,instanceof 會(huì)調(diào)用 __autoload()。另外,如果該類(lèi)沒(méi)有被裝載則會(huì)產(chǎn)生一個(gè)致命錯(cuò)誤。可以通過(guò)使用動(dòng)態(tài)類(lèi)引用(dynamic class reference)或用一個(gè)包含類(lèi)名的字符串變量來(lái)避開(kāi)這種問(wèn)題:
Example #6 避免 PHP 5.0 中 instanceof 引起的類(lèi)名查找和致命錯(cuò)誤問(wèn)題
<?php
$d = 'NotMyClass';
var_dump($a instanceof $d); /pic/div>
?>
以上例程會(huì)輸出:
bool(false)
instanceof 運(yùn)算符是 PHP 5 引進(jìn)的。在此之前用 is_a(),但是 is_a() 已經(jīng)過(guò)時(shí)了,最好用instanceof。
【PHP語(yǔ)言類(lèi)型運(yùn)算符】相關(guān)文章:
PHP語(yǔ)言:數(shù)組運(yùn)算符07-20
PHP語(yǔ)言:數(shù)據(jù)類(lèi)型02-10
PHP變量類(lèi)型和整型類(lèi)型細(xì)節(jié)02-05
java語(yǔ)言運(yùn)算符08-31
PHP開(kāi)發(fā)之運(yùn)算符使用介紹11-12
php入門(mén)知識(shí):運(yùn)算符使用介紹10-28
- 相關(guān)推薦