以下は奇妙なものです、私は得られませんでした
if (print("foo") || print("bar")) {
// "foo" has been printed.
}
なぜ出力が1?
説明していただけますか?
以下は奇妙なものです、私は得られませんでした
if (print("foo") || print("bar")) {
// "foo" has been printed.
}
なぜ出力が1?
説明していただけますか?
PHPはばかげた言語だからです。printこれは通常の関数ではなく、言語構造です。この行は実際には次のように解析されます。
if (print (("foo") || print("bar")))
そして("foo") || print("bar")、に評価される式1です。ブールコンテキストの文字列"foo"はtrueであるため、||演算子はを生成し1ます。
式を明示的に括弧で囲むと、解析されると予想される方法になります。
if ((print("foo")) || (print("bar")))
次に、出力は期待どおりになります。
foo