0

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

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

  2. 检查继承层次结构

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

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

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

4

3 回答 3

1

在 PHP 中,你有建设instanceof

$a instanceof MyClass
于 2013-10-22T06:34:50.993 回答
0

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
?>
于 2013-10-22T12:42:09.570 回答
0

is”运算符用于比较/测试数据类型成员资格(类型检查)。在 php 中,您可以使用instanceof检查对象的具体类型

$obj = new A();

if ($obj instanceof A) {
   ...
}
于 2013-10-22T06:47:50.327 回答