PHP5的另一个新成员是instanceof 关键字。
使用这个关键字可以确定一个对象是类的实例、类的子类,还是实现了某个特定接口(这三种情况都会返回true,否则返回false),并进行相应操作。
例如,假设希望了解名为 $manager 的对象是否为类Employee的实例:
$manager = new Employee();
...
if( $manager instanceof Employee ) echo "Yes";
注意:类名没有用任何定界符(引号)环绕。使用定界符将导致语法错误。
instanceof 在同时处理多个对象是非常有用。例如,你可能要重复地调用某个函数,但希望根据给定的对象类型调整函数的行为。可以使用case 语句和instanceof 关键字来实现这个目标。
这个函数的使用还有待跟进,目前理解的还不是很透彻。尤其是“接口”是什么还没有学到。
下面是自己写的一个例子:
<?php
class Employee{
function __construct(){
echo "I am a Employee.<br/>";
}
}
class Manager extends Employee{
function __construct(){
parent::__construct();
echo "I am a Manager.<br/>";
}
}
$manager = new Manager();
if($manager instanceof Manager ){
echo "I am Manager's instance.<br/>";
}
if($manager instanceof Employee){
echo "I am Employee's child.<br/>";
}
?>
运行结果:
I am a Employee.//Employee构造函数
I am a Manager.//Manager构造函数
I am Manager's instance.
I am Employee's child.
哈哈哈~下面记录一下自己学到的英语知识:
instance
n. 实例;例子;事例
v.举…为例
网络 例证;实体;个体
instant
n.瞬间;片刻;某一时刻
adj.立即的;立刻的;速食的;即食的
conj.同“as soon as”
网络 刹那;即刻的;速溶的