如何检查 symfony2 中某个类的实例

php
2022-08-30 07:52:30

如果实体是少数类的成员,但不是某些类的成员,我想执行一些函数。

有一个名为 的函数。instanceof

但是有没有像这样的东西

if ($entity !instanceof [User,Order,Product])

答案 1

给他们一个通用的界面,然后

if (!$entity instanceof ShopEntity)

或留在

if (!$entity instanceof User && !$entity instanceof Product && !$entity instanceof Order)

我会避免创建任意函数,只是为了在一个地方保存一些字符。另一方面,如果你“太频繁”需要它,你可能有设计缺陷?(在“太多边缘情况”之类的含义中)


答案 2

PHP手册 说: http://php.net/manual/en/language.operators.type.php

!($a instanceof stdClass)

这只是一个逻辑和“语法上”正确的书面语法。

!$class instanceof someClass

但是,上面建议的语法很棘手,因为我们没有指定哪个是否定的范围:变量本身或的整个构造。我们只需要依靠这里的运算符优先级[已编辑,感谢@Kolyunya]。$class instanceof someclass


推荐