Instanceofを無効にするための正しい形式はどれですか?
if ( ! $a instanceof stdClass)
または
if ( ! ($a instanceof stdClass) )
おそらく数年前のブログ記事を読んだ後、後者は正しい方法だと私は確信しましたが、いくつかのコマンドラインテストの結果、どちらも同等に見えます。 Are彼らですか?
読みましょう ドキュメント :
次の表は、演算子を優先順位の高い順に並べたものです。[...]
Associativity Operators Additional Information
================== =============== ======================
non-associative instanceof types
right ! logical
したがって、instanceof
の方が優先順位が高いため、両方のステートメントは同等です。括弧はおそらくそれを明確にするために使用されるので、ドキュメントでそれを調べる必要はありません。
それらは同等ですか?
はい、論理的には同等です。 答え byÁlvaroG. Vicarioは、詳細whyを提供します。
のインスタンスを否定するための正しい形式はどれですか?
2つのうち、次の方が読みやすいという議論があります。しかし、単一のwayはありません。これがPHPの美しさと呪いです。
!($a instanceof stdClass)