instanceof否定
哪个是否定instanceof的正确格式?
if ( ! $a instanceof stdClass)
要么
if ( ! ($a instanceof stdClass) )
我已经说服了自己,后者是正确的方式,可能在几年前阅读了一篇博客文章,但经过一些命令行testing后,它们看起来都是相当的。 他们?
我们来阅读文档 :
下表按优先顺序列出了运算符,最高优先顺序排在最前面。
Associativity Operators Additional Information ================== =============== ====================== non-associative instanceof types right ! logical
所以instanceof
具有更高的优先级,因此两个语句是等价的。 括号可能被用来使其明显,所以你不需要在文档中查找它。
他们是否等同?
是的,逻辑上它们是相等的。 ÁlvaroG. Vicario 的答案提供了更多细节的原因 。
哪个是否定实例的正确格式?
在这两者中,有一种观点认为以下内容更具可读性。 但是没有一个办法 。 这是PHP的美丽和诅咒。
!($a instanceof stdClass)