時々社内ニートのメモ 目指せ非プログラマー

案件がない時は社内ニートなだけだよ (もう何でもごじゃれ c, c++, c#, VB, java, php, javascript, sql, html, css 他)

PHPのやっかいな比較 0 と null は同じ!? 0 は empty !?

①$hikaku = null;

②$hikaku = 0;

③$hikaku = "0";

 

if($hikaku == 0) {

    echo "0だよな?";

} else {

    echo "0じゃないよな?";

}

 

 

ってものを作ります。

結果は①②③ともに

 

0だよな?

 

になります。

はぁ?

 

私は②と③だけが"0だよな?"になると思っていましたがそうではないようです。

 

もちろんphpには== と===の演算子があることも知っています。

でもさ・・・

 

詳細はこちら

PHP: PHP 型の比較表 - Manual

 

ってことで

if($hikaku == "0")

とすることで

0と"0"だけが通る場所を作れそうです。

 

あ~ややこしい。

 

他にも

empty(0)

は true だったりとややこしいもんです。