否定的实例

时间:2013-01-16 16:03:24

标签: php instanceof

否定instanceof的正确格式是什么?

if ( ! $a instanceof stdClass)

if ( ! ($a instanceof stdClass) ) 

我确信自己后者是正确的方式,可能是在几年前阅读一篇博客文章之后,但经过一些命令行测试后,它们看起来都是等价的。 他们?

2 个答案:

答案 0 :(得分:82)

让我们阅读the docs

  

下表按优先顺序列出了运算符,最高优先级位于顶部。[...]

Associativity      Operators       Additional Information
================== =============== ======================
non-associative    instanceof      types
right              !               logical

因此instanceof具有更高的优先级,因此两个语句都是等价的。括号可能用于使其显而易见,因此您无需在文档中查找它。

答案 1 :(得分:13)

  

他们是等同的吗?

是的,从逻辑上讲它们是等价的。 ÁlvaroG。Vicario The answer提供了更多详细信息 why

  

否定实例的正确格式是什么?

在这两者中,有一个论点是以下内容更具可读性。但是没有单一的方式。这就是PHP的美丽和诅咒。

!($a instanceof stdClass)