Septeni Engineer's Blog

セプテーニエンジニアが綴る技術ブログ

PHP 比較演算子の罠


f:id:k_chindamaikul:20150722152906p:plain
こんにちわ、damayaです。

突然ですが、PHPのプログラム問題です。
下記11パターンのif文のうち、「同じ」と出力されるのは何番と何番でしょう?

<?php
if(0 == '0'){		// 1
	echo '1:同じ';
}
if(0 == 'a'){		// 2
	echo '2:同じ';
}
if('1' == '1.0'){	// 3
	echo '3:同じ';
}
if('1' == '01'){	// 4
	echo '4:同じ';
}
if(1 == TRUE){		// 5
	echo '5:同じ';
}
if('1' == TRUE){	// 6
	echo '6:同じ';
}
if(0 == FALSE){		// 7
	echo '7:同じ';
}
if('0' == FALSE){	// 8
	echo '8:同じ';
}
if(1 == '1aaaa'){	// 9
	echo '9:同じ';
}
if('10' == '1e1'){	// 10
	echo '10:同じ';
}
if(100 == '1e2'){	// 11
	echo '11:同じ';
}


答えは・・・

上記11パターン全て、「同じと表示されます。


みなさん、PHPの比較演算子には気をつけましょう。

ちゃんと「 === 」で比較しましょう!