php中 instanceof有什么用
发布网友
发布时间:2022-04-22 14:09
我来回答
共5个回答
热心网友
时间:2022-04-22 15:38
作用:(1)判断一个对象是否是某个类的实例,(2)判断一个对象是否实现了某个接口。
第一种用法:
<?php
$obj = new A();
if ($obj instanceof A) {
echo 'A';
}
第二种用法:
<?php
interface ExampleInterface
{
public function interfaceMethod();
}
class ExampleClass implements ExampleInterface
{
public function interfaceMethod()
{
return 'Hello World!';
}
}
$exampleInstance = new ExampleClass();
if($exampleInstance instanceof ExampleInterface){
echo 'Yes, it is';
}else{
echo 'No, it is not';
}
?>
输出结果:Yes, it is
另外,需注意 instanceof 与 is_subclass_of() 的区别,请看代码:
<?php
class Foo {
public $foobar = 'Foo';
public function test() {
echo $this->foobar . "\n";
}
}
class Bar extends Foo {
public $foobar = 'Bar';
}
$a = new Foo();
$b = new Bar();
echo "use of test() method\n";
$a->test();
$b->test();
echo "instanceof Foo\n";
var_mp($a instanceof Foo); // TRUE
var_mp($b instanceof Foo); // TRUE
echo "instanceof Bar\n";
var_mp($a instanceof Bar); // FALSE
var_mp($b instanceof Bar); // TRUE
echo "subclass of Foo\n";
var_mp(is_subclass_of($a, 'Foo')); // FALSE
var_mp(is_subclass_of($b, 'Foo')); // TRUE
echo "subclass of Bar\n";
var_mp(is_subclass_of($a, 'Bar')); // FALSE
var_mp(is_subclass_of($b, 'Bar')); // FALSE
?>
输出结果(PHP 5.4.4):
use of test() method
Foo
Bar
instanceof Foo
bool(true)
bool(true)
instanceof Bar
bool(false)
bool(true)
subclass of Foo
bool(false)
bool(true)
subclass of Bar
bool(false)
热心网友
时间:2022-04-22 16:56
"instanceof"操作符的使用非常简单,它用两个参数来完成其功能。
第一个参数是你想要检查的对象,第二个参数是类名(事实上是一个接口名),用于确定是否这个对象是相应类的一个实例。它的基本语法如下:
if (object instanceof class name){//继承关系
//
}
热心网友
时间:2022-04-22 18:31
instanceof
用来检测一个给定的对象是否属于(继承于)某个类(class)、某个类的子类、某个接口(interface)。如果是则返回true。
热心网友
时间:2022-04-22 20:22
用来判断继承关系的
热心网友
时间:2022-04-22 22:30
接口的应用