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 件のコメント:

コメントを投稿

.htaccessで403を404で返す

久しぶりにリライトルールを書いたよ。 ドキュメントルートに.htaccessを置く場合の記述↓ # 403.html は実体がなくてよい。この設定をすることで、あっても使われなくなる。 ErrorDocument 403 /403.html # 独自の404ページをドキュメ...