
5 May
2024
5 May
'24
5:03 p.m.
大谷ともうします。 PHPで、if(!$x = 〜〜〜) という記述を見つけ、 「PHPではこんなのがエラーにならないんだ」と思ったのですが、 念のため、Rubyで !x = 123 をやってみると、Rubyでもエラーにならず false になります。 演算子の優先度を考えると、これは、 (!x) = 123 の意味になって構文エラーになるはずと思ったのですが、 !(x = 123) と見なされているようです。単項演算子 + - でも同様ですね。 これはさすがにバグじゃなくて意図的な仕様だと思うのですが、 演算子優先度の例外を作ってまで、 !(x = 123) -(x = 123) +(x = 123) と見做したいという理由があったのでしょうか? ふとした疑問ですが、ご存じの方、よろしくお願いします。 -- tksotn