2011-10-20

PHPにそんなマニュアルがあったなんて

PHPで1年半開発してきたけど、今日、始めてこんなマニュアルがあるのに気づいた。

■PHPマニュアル
付録 PHP型の比較表
http://www.php.net/manual/ja/types.comparisons.php


==で緩やかに比較したときの、あの、わけの分からないTRUEとFALSEの評価と
is_null()、empty()、isset()の結果が一覧表で載っていた。

知らなかった...

マニュアルは、ちゃんと読みましょう。ね。



で、どうしても解せない不愉快な評価結果。

if (0 == NULL) は TRUE と評価され
if (0 == "0") は TRUE と評価されるのに

if ("0" == NULL) は FALSE と評価される。



if (FALSE == NULL) は TRUE と評価され
if (FALSE == "0") は TRUE と評価されるのに

それでもやっぱり
if ("0" == NULL) は FALSE と評価される。




証明が成り立っていない。だめだ、俺の中であり得ない。


世の中、理不尽なことばかりだ。


if ("" == NULL) は TRUE だけど

if ("" == "0") は FALSE だから
if (NULL == "0") は FALSE なんだろうか?






「仕様です」


ではなくて、この理由をご存知の方、教えてください。


0 件のコメント:

コメントを投稿

Chatの「メッセージは投稿者によって削除されました」を非表示にする方法

Chrome拡張機能を自作してやってみよう! ♪できるかな できるかな ・・・ 無理ぽ (´・ω・`) iframeの中に、実際のメッセージのやり取りが表示されるので、 $(function(){ $('iframe[name^="spa...