instanceof
是php5为面向对象引入的php中唯一的类型运算符。
instanceof用来检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。如果是则返回true。
instanceof用来检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。如果是则返回true。
看下面的一段代码:
<?php
class baseClass {}
class subClass extends baseClass{}
interface aInterface {}
class aClass implements aInterface {}
$a = new baseClass();
echo( ($a instanceof baseClass));
$b = new subClass();
echo( ($b instanceof baseClass));
$c = new aClass();
echo( ($c instanceof aInterface));
?>
虽然PHP5是松散型的程序语言,但PHP5仍新增了Class Type Hints的功能,用来声明传入对象的参数所需要符合类型。如果传入的参数不符合指定的类型会产fatal error。看下面的代码。
<?php
class Foo {}
class Bar {}
function check(Foo $obj) {
echo("The passed in object is Foo/its subclass/its implementation(if Foo is interface).<br>");
}
$a = new Foo();
$b = new Bar();
check($a);
check($b);
?>
其实使用Class Type Hints就和以下程序代码的意义一样:
<?php
function check($obj) {
if (!($obj instanceof aClassName)) {
die("Argument 1 must be an instance of aClassName");
}
}
?>
<?php
class baseClass {}
class subClass extends baseClass{}
interface aInterface {}
class aClass implements aInterface {}
$a = new baseClass();
echo( ($a instanceof baseClass));
$b = new subClass();
echo( ($b instanceof baseClass));
$c = new aClass();
echo( ($c instanceof aInterface));
?>
虽然PHP5是松散型的程序语言,但PHP5仍新增了Class Type Hints的功能,用来声明传入对象的参数所需要符合类型。如果传入的参数不符合指定的类型会产fatal error。看下面的代码。
<?php
class Foo {}
class Bar {}
function check(Foo $obj) {
echo("The passed in object is Foo/its subclass/its implementation(if Foo is interface).<br>");
}
$a = new Foo();
$b = new Bar();
check($a);
check($b);
?>
其实使用Class Type Hints就和以下程序代码的意义一样:
<?php
function check($obj) {
if (!($obj instanceof aClassName)) {
die("Argument 1 must be an instance of aClassName");
}
}
?>
转载于:https://blog.51cto.com/pplxh/367150