PHP中的什么类似于Actionscript的“is”运算符?

时间:2013-10-22 06:31:28

标签: php actionscript-3

据我所知,ActionScript中的运算符执行以下操作:(纠正我,如果我错了)

  1. 测试变量或表达式是否与给定的数据类型兼容。

  2. 检查继承层次结构

  3. 可用于检查对象是特定类的实例还是特定类的子(或孙子,曾孙,曾孙子等)。

  4. 检查对象是否是实现特定接口的类的实例

  5. 现在我想知道 PHP 中的什么类似于Actionscript的“”运算符?

3 个答案:

答案 0 :(得分:1)

在PHP中,您有构造instanceof

$a instanceof MyClass

答案 1 :(得分:0)

"is" operator用于比较/测试数据类型成员资格(类型检查)。在php中,您可以使用instanceofcheck the specific type of the object

$obj = new A();

if ($obj instanceof A) {
   ...
}

答案 2 :(得分:0)

ActionScript的运算符等同于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
?>