PHPのif文で「!」を2つ以上書いてもエラーにはならない
小ネタというか、チョンボネタというか、本当にネタな話です。
PHPでif文書いてて、まぁ要するにイージーミスなんですけど、「!」を2つ以上書いてしまいまして。つまり以下のような感じです。
if(!! isMethod()) { echo "true"; } else { echo "false"; } function isMethod() { return true; }
本来は「false」と出力したかったんですが、見て分かるように一行目のif文の判定の中で「!!」と「!」を2つ重ねてしまったんですね。
ところがなんとこれがエラーにならずに実行できて、しかも「true」を出力するというギャグみたいな事実が判明しました。
ちなみに「!」を3つ重ねると「false」が、4つ重ねると「true」が出力されます。理屈上はいくつでも重ねられるはず。
PHP以外では試してないんですが、他の言語はどうなんでしょうね? 今度試してみたいです。