ごく普通の在日

あるPHPの比較演算子で驚いた。

先週の話だった。経験豊富そして優秀なプログラマーの方々はすでに理解できているかもしれないが、自分は初めて現象だった。

PHP 5.4


どんな現象かというと、以下のような動作

operators.php
<?php

$a = 0;
$b = "island";

if ($a == $b) {
    echo "0 is island
";
} else {
    echo "0 is not island
";
}
そしてこれを実行すると
$ php operators.php
0 is island
$ 




_人人人人人人人_
> 0 is island <
 ̄Y^Y^Y^Y^Y^Y ̄




参考:PHP:比較演算子 http://php.net/manual/ja/language.operators.comparison.php

"$a == $b 型の相互変換をした後で $a が $b に等しい時に TRUE。

この動作を正しく出力するように修正するのはもちろん簡単だ
if ($a == $b)からif ($a === $b)にすればいい

== === は、このような判定とパフォーマンスの違いがあり、気をつけましょうと。


あぁーあー びっくりした。



先週の話だった。経験豊富そして優秀なプログラマーの方々はすでに理解できているかもしれないが、自分は初めて現象だった。

PHP 5.4


どんな現象かというと、以下のような動作

operators.php
<?php

$a = 0;
$b = "island";

if ($a == $b) {
    echo "0 is island
";
} else {
    echo "0 is not island
";
}
そしてこれを実行すると
$ php operators.php
0 is island
$ 




_人人人人人人人_
> 0 is island <
 ̄Y^Y^Y^Y^Y^Y ̄




参考:PHP:比較演算子 http://php.net/manual/ja/language.operators.comparison.php

"$a == $b 型の相互変換をした後で $a が $b に等しい時に TRUE。

この動作を正しく出力するように修正するのはもちろん簡単だ
if ($a == $b)からif ($a === $b)にすればいい

== === は、このような判定とパフォーマンスの違いがあり、気をつけましょうと。


あぁーあー びっくりした。