PHP 5.2.5 と nucleus

PHP

PHP5.2.5にしたらnucleusの管理ページにて、segmentention faultしちゃう。

5.2.4に戻したら解決

こんなんでいいんすか。PHPよ。

$a = 1;
$b = "1a";

if($a == $b){
  print 'same';  // ←表示されるし。凸(`、´メ)
}

コメント

  1. hiroki より:

    うそーん!

  2. matsu より:

    目を疑いました。

  3. hiroki より:

    弊社SEに聞いたところ、なんか5.2.5に限らずphpの仕様のようでした。numberとstringを比較する場合、stringをnumberとして評価する、とphpマニュアルにも書いてある。

    んで、その値はstringの先頭から/(¥d+)/みたいな感じで引っ掻いてきて作ってるようだ、と。

    なので、比較対象の型が同じである確証が無いときは
    === を使った方が幸せになれるみたいだよ。

  4. matsu より:

    POSTとかGETされたパラメータを解析するときに不具合が起きるかなぁと思ったけど、数値として見られるなら問題なさそうですね。

    きついチェックは型まで見ないと行けないですね。
    http://www.php.net/manual/en/language.types.string.php#language.types.string.conversion

    勉強になりました。

  5. matsu より:

    こーいうことらしいですねぇ。

    (0 == “str”) === true