问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

接口的应用
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怀孕错过了糖筛怎么办 糖筛有哪些注意事项 怀孕几个月查唐筛 蔡家沟镇慈云寺 哈佳高铁高楞站多少平方米位置在那 超威电池生产日期怎么看 超威电池寿命一般多长时间 华晨宇鸟巢四面台10w+秒罄!!火星演唱会舞台概念图震撼发布! 手机连接160wifi电脑蓝屏使用160WiFi遇到问题应该如何解决 为什么手机wifi总是刚开启,锁屏就掉了。wifi设置里的休眠模式也是永久的... 建行卡为什么不能网上转账 学校发我们的建设银行卡一定要激活吗? 我打电话查余额说输入取钱密码... 1000块钱一个月30利息高吗 a是b的子类,C是B类型的变量并引用了一个A类的对象,表达式(B instanceof C)取值为什么是false? 电脑怎么登陆两个 网络安全与技术 想知道一下仙乐健康是上市公司吗?一直有在关注国内的一些保健食品品牌,听朋友讲仙乐健康很不错。 电脑怎么登录2个 大健康近年来发展势头迅猛,仁和集团作为国内药企的龙头企业,是如何布局大健康产业的? 山东省的保健品上市公司有哪些? 给别人错误的身份证号,别人能查到准确的吗 魏晋南北朝同时几个国家?分不清了 请教大家…能帮我把历史上:南北朝所有的国家全部列出,特别是北朝的国家… 电脑怎么登录多个 三国两晋南北朝时期的所有国家 南北朝共几个国家 南北朝有多少国家 能介绍一下南北朝时期都有哪些国家 如何在电脑上同时登陆两个 魏晋南北朝有几个国家 南朝,北朝各有几个国家 南北朝时期具体有哪些国家及年代 分级基金申购门槛是多少 英文关于睡觉的短语有什么 我的电脑上凡是PDF格式的文件,显示图标都是那种无法识别的形式,这是怎么回事啊? (用英语短语表示)睡觉 好好的睡觉+英语 词组短语 睡觉的英文是纳尼 睡觉的时间到了用英语怎么说 两种方式 二乙氧基甲基硅烷能够完全水解吗 十二烷基甲基二乙氧基硅烷和十八烷基甲基二甲氧基硅烷有吗 加热桌垫和桌子上面的油漆有毒吗? 老人遗嘱范文怎么写 老人遗嘱范本如何写 老年人想写遗嘱怎么写 电脑怎么登陆双 老人遗嘱怎么写标准 老人写遗嘱应该怎么写 稻花鱼是鲤鱼吗 236斤男生坚持跑完3千米,网友对此事评论为何两极化? 稻花鱼是鲤鱼吗? 3000米跑步