PHP5.2.5にしたらnucleusの管理ページにて、segmentention faultしちゃう。
5.2.4に戻したら解決
こんなんでいいんすか。PHPよ。
$a = 1; $b = "1a"; if($a == $b){ print 'same'; // ←表示されるし。凸(`、´メ) }
PHP5.2.5にしたらnucleusの管理ページにて、segmentention faultしちゃう。
5.2.4に戻したら解決
こんなんでいいんすか。PHPよ。
$a = 1; $b = "1a"; if($a == $b){ print 'same'; // ←表示されるし。凸(`、´メ) }
Comments
うそーん!
目を疑いました。
弊社SEに聞いたところ、なんか5.2.5に限らずphpの仕様のようでした。numberとstringを比較する場合、stringをnumberとして評価する、とphpマニュアルにも書いてある。
んで、その値はstringの先頭から/(¥d+)/みたいな感じで引っ掻いてきて作ってるようだ、と。
なので、比較対象の型が同じである確証が無いときは
=== を使った方が幸せになれるみたいだよ。
POSTとかGETされたパラメータを解析するときに不具合が起きるかなぁと思ったけど、数値として見られるなら問題なさそうですね。
きついチェックは型まで見ないと行けないですね。
http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion
勉強になりました。
こーいうことらしいですねぇ。
(0 == “str”) === true