前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >php中instanceof作用

php中instanceof作用

作者头像
botkenni
发布2022-01-10 11:00:43
8030
发布2022-01-10 11:00:43
举报
文章被收录于专栏:IT码农IT码农

作用:

(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_dump($a instanceof Foo); // TRUE

var_dump($b instanceof Foo); // TRUE

echo "instanceof Bar\n";

var_dump($a instanceof Bar); // FALSE

var_dump($b instanceof Bar); // TRUE

echo "subclass of Foo\n";

var_dump(is_subclass_of($a, 'Foo')); // FALSE

var_dump(is_subclass_of($b, 'Foo')); // TRUE

echo "subclass of Bar\n";

var_dump(is_subclass_of($a, 'Bar')); // FALSE

var_dump(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)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/04/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档