ミッションたぶんPossible

どこにでもいるシステムエンジニアのなんでもない日記です。たぶん。

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以外では試してないんですが、他の言語はどうなんでしょうね? 今度試してみたいです。