否定实例
2022-08-30 09:20:32
哪个是否定实例的正确格式?
if ( ! $a instanceof stdClass)
或
if ( ! ($a instanceof stdClass) )
我已经说服自己后者是正确的方式,可能是在几年前阅读了一篇博客文章之后,但经过一些命令行测试,它们似乎都是等效的。是吗?
哪个是否定实例的正确格式?
if ( ! $a instanceof stdClass)
或
if ( ! ($a instanceof stdClass) )
我已经说服自己后者是正确的方式,可能是在几年前阅读了一篇博客文章之后,但经过一些命令行测试,它们似乎都是等效的。是吗?
让我们阅读文档:
下表按优先级顺序列出了运算符,优先级最高的运算符位于顶部。[...]
Associativity Operators Additional Information
================== =============== ======================
non-associative instanceof types
right ! logical
因此具有更高的优先级,因此两个语句都是等效的。括号可能用于使其变得明显,因此您无需在文档中查找它。instanceof
它们是等效的吗?
是的,从逻辑上讲,它们是等效的。Álvaro G. Vicario的答案提供了更多细节。
哪个是否定实例的正确格式?
在这两者中,有一种观点认为以下内容更具可读性。但是没有单一的方法。这就是PHP的美丽和诅咒。
!($a instanceof stdClass)