以下は奇妙なものです、私は得られませんでした
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