[PHP-users 127] Re: 論理値変数以外の論理評価

Osamu Shigematsu php-users@php.gr.jp
Wed, 20 Jun 2001 11:18:01 +0900


重松です。杉村さん、こんにちは。

> 文字列 "0" は false です。ドキュメントに明記してあります。

http://www.php.net/manual/ja/language.types.string.php
http://www.php.net/manual/ja/language.types.type-juggling.php

あたりを探していました。

http://www.php.net/manual/ja/language.expressions.php

に記載がありました。

最後に、有益な事項として式の論理値について説明します。 多くのイベント、主に
条件付き実行とループにおいて、 式の特定な値には関心がないが、TRUE または
FALSE のどちらを 意味するかに関心があるということがあります。 (PHP には、専
用の論理型がありません。) PHP において式の真値は、perl に似た手法で計算され
ます。 全ての非ゼロ数値は TRUE (真)で、ゼロは FALSE (偽)です。 負の値は非ゼ
ロであり、よって、TRUE とみなされることに注意して下さい! 空の文字列と文字列
"0" は FALSE ですが、その他の文字列は、TRUE です。 非スカラー値(配列とオブ
ジェクト)に関しては、要素がない場合は FALSE と みなされ、その他は TRUE とみ
なされます。

まさに知りたかったことが明確に定義されています。
まだまだ情報の探し方が下手なようで、お手数をおかけいたしました。

とりあえず、PHPLIB の方は、"0" が false と判断される以外は、空白ではない、と
いう意味合いだとわかりました。0 という名前は変数に使えないので、ああいう書き
方でも問題はないんですね。本来は、"1"などもはじく必要があるかと思いますが、
速度との兼ね合いだと思います。

今後とも、ご指導をよろしくお願いいたします。