据我所知,ActionScript 中的is运算符执行以下操作:(纠正我,如果我错了)
测试变量或表达式是否与给定的数据类型兼容。
检查继承层次结构
可用于检查对象是特定类的实例还是特定类的子(或孙子、曾孙、曾曾孙等)的实例。
检查对象是否是实现特定接口的类的实例
现在我想知道PHP中的什么是/类似于 Actionscript 的“是”运算符?
据我所知,ActionScript 中的is运算符执行以下操作:(纠正我,如果我错了)
测试变量或表达式是否与给定的数据类型兼容。
检查继承层次结构
可用于检查对象是特定类的实例还是特定类的子(或孙子、曾孙、曾曾孙等)的实例。
检查对象是否是实现特定接口的类的实例
现在我想知道PHP中的什么是/类似于 Actionscript 的“是”运算符?
在 PHP 中,你有建设instanceof
:
$a instanceof MyClass
ActionScript 的is运算符等价于 PHP 的instanceof运算符
<?php
class Person {}
$p1 = new Person();
$p2 = new Person();
echo ($p1 instanceof $p2)?"True":"False"; //o/p: True bcz both $p1 & $p2 are the instances of same class
echo ($p1 instanceof Person)?"True":"False";//True , checking through class name
interface LoyalCustomer{}
class Customer extends Person implements LoyalCustomer {}
$c1 = new Customer();
echo ($c1 instanceof $p1)?"True":"False";//True
class RegularCustomer extends Customer{}
$rc1 = new RegularCustomer();
echo ($rc1 instanceof $p1)?"True":"False";//True
echo ($rc1 instanceof $c1)?"True":"False";//True
echo ($rc1 instanceof RegularCustomer)?"True":"False";//True
echo ($rc1 instanceof Customer)?"True":"False";//True
echo ($rc1 instanceof Person)?"True":"False";//True
echo ($p1 instanceof LoyalCustomer)?"True":"False";//False
echo ($c1 instanceof LoyalCustomer)?"True":"False";//True
echo ($rc1 instanceof LoyalCustomer)?"True":"False";//True
echo ($p1 instanceof $rc1)?"True":"False";//False
?>
“ is”运算符用于比较/测试数据类型成员资格(类型检查)。在 php 中,您可以使用instanceof来检查对象的具体类型。
$obj = new A();
if ($obj instanceof A) {
...
}