PHP中怎样去判断对象是否属于一个类?

在之前的文章中给大家带来了《你必须了解PHP中什么是抽象类和抽象方法》,其中详细介绍了PHP中的抽象类和抽象方法相关知识,本篇我们来看一下PHP中怎样去判断对象是否属于一个类,希望对大家有帮助!

在之前的文章中给大家带来了《你必须了解PHP中什么是抽象类和抽象方法》,其中详细介绍了PHP中的抽象类和抽象方法相关知识,本篇我们来看一下PHP中怎样去判断对象是否属于一个类,希望对大家有帮助!

PHP中怎样去判断对象是否属于一个类?

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

在PHP中想要去判断对象是否属于一个类就需要通过 instanceof ,使用instanceof关键字可以确定一个对象是类的实例、类的子类,还是实现了某个特定接口,并进行相应的操作。这就可以用来判断对象是否属于某一类,它的语法格式如下:

对象名 instanceof 类名;登录后复制

判断一个对象是否属于某个类

想要判断一个对象是否属于某个类,那就通过instanceof关键字,按照语法格式,如果该对象属于这个类,它会返回true;如果不属于这一类,它会返回flase。

接下来我们通过一个示例来看一下,一个对象是否属于某个类。示例如下:

登录后复制

输出结果:

PHP中怎样去判断对象是否属于一个类?

由上述结果可以看出,被检测的对象属于study类,返回的结果是true,被检测的对象不属于study1类,所以返回了flase。因此通过instanceof能够判断一个对象是否属于某个类。

判断一个对象是否属于某个父类的子类

通过上述的案例我们已经能够判断一个对象是否属于一个类了,不仅如此,通过instanceof还能够判断一个对象是不是继承自某个父类的子类,同理如果被检测的对象属于这个父类的子类的话,返回的结果是true,如果被检测的对象不属于这个父类的子类的话,返回的结果是flase。

接下来我们通过示例来看一下,示例如下:

登录后复制

输出结果:

PHP中怎样去判断对象是否属于一个类?

由上述结果看出,通过instanceof也能够判断一个对象是不是继承自某个父类的子类。

判断一个对象是否属于一个接口的对象

我们还可以通过instanceof 用于确定一个变量是不是实现了某个接口的对象,与上述中的情况同理,如果输出结果为true,表示该对象属于此接口,如果输出结果为flase,表示该对象不属于此接口。

我们通过示例来看一下,示例如下:

登录后复制

输出结果:

PHP中怎样去判断对象是否属于一个类?

上述事例中,通过instanceof判断了一个变量是不是某个接口的对象。

当判断的对象不存在

我们还有一种情况需要注意的就是,如果被检测的变量不是对象,那返回的结果有什么变化吗,会不会有什么影响。instanceof并不会报错而是会直接返回flase。

我们通过示例看一下,示例如下:

登录后复制

输出结果:

PHP中怎样去判断对象是否属于一个类?

由上述示例看出,被监测的变量不是对象,系统并没有报错,而是返回了flase。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

PHP中的is_a()函数和instanceof之间有什么区别?

原创2019-03-06 10:06:522219 + php学习QQ群(点击入群)在PHP中is_a()函数和instanceof运算符的功能是相似的,那么它们之间有什么区别?下面本篇文章就来带大家简单了解一下is_a()函数和instanceof,介绍is_a()函数和instanceof的区别是什么,希望对大家有所帮助。【视频教程推荐:PHP教程】

PHP中怎样去判断对象是否属于一个类?

php入门到就业线上直播课:进入学习API 文档、设计、调试、自动化测试一体化协作工具:点击使用

PHP is_a()函数

is_a()函数是PHP中的内置函数,用于检查给定对象是否属于给定类;它还检查给定的类是否是给定对象的父类之一。

基本语法:

is_a( $object, $class_name, $allow_string )登录后复制

参数:is_a()函数可以接受以下三个参数

● object:用于保存测试对象。

● class_name:用于保存类名。

● allow_string:如果设置的值为False,则不允许将字符串类名称作为对象。

返回值:如果对象属于给定的类,或者此类作为其父类之一,则is_a()函数返回True,否则将返回False值。

下面通过代码示例来了解一下is_a()函数。

登录后复制

输出:

Yes登录后复制

PHP instanceof运算符

在PHP中使用instanceof运算符来查明对象是否是类的实例化实例。

基本语法:

$a instanceof MyClass登录后复制

操作数:instanceof运算符包含以下两个操作数

● $a:表示对象。

● MyClass:表示是一个类名。

返回值:如果对象属于该给定的类,或者将此类作为其父类之一,则返回True,否则返回False值。

下面通过代码示例来了解一下instanceof运算符。

登录后复制

输出:

Yes登录后复制

is_a()函数和instanceof运算符之间的区别

● is_a()是一个函数,而instanceof是一个语言结构。is_a()函数将显着变慢,因为它具有执行函数调用的所有开销。

● 在函数回调的情况下(如array_map),因为instanceof不是函数,它是一种语言构造,所以它不能用作回调。但,回调可以在is_a()函数中使用。

● InstanceOf中直接类名的使用时间短于is_a()函数。

例:

//语法短(比较)
$a instanceof MyClass
is_a( $a, MyClass::class )登录后复制

● is_a()是一个函数,它将一个对象作为参数1,将一个字符串作为参数2,而instanceof将一个对象作为参数1,并且可以将类名、对象实例或类标识符(不带引号的类名)作为参数2。

is_a()的示例:

//只有这样才能调用它
is_a($object,$string);登录后复制

instanceof示例:

//对象实例
$object instanceof $otherObject;
//字符串类名
$object instanceof $string;
//类的标识符
$object instanceof ClassName;登录后复制

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注钦钦技术栈相关教程栏目!!!

以上就是PHP中的is_a()函数和instanceof之间有什么区别?的详细内容,更多请关注钦钦技术栈其它相关文章!

转载至:php中文网【www.php.cn】

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/27295/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022-09-29 5:11:42
下一篇 2022-09-29 5:12:32

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!