[PHP-users 125] 論理値変数以外の論理評価

Osamu Shigematsu php-users@php.gr.jp
Wed, 20 Jun 2001 09:57:50 +0900


重松です。こんにちは。

PHPLIB の session.inc を読んでいて、少し気になったことがあります。
それは、論理値以外の値を持つ変数を論理評価した場合の動作です。

register() のなかで、

if($thing){
    $this->pt[$thing] = true;
}

のように、文字列変数 $thing を論理評価しています。$thing だったら、というの
がいったいどういう条件なのか、気になって仕方ありません。

実験したところ

"a" true
"0" false
"" false
空 false (unset しているので文字列ではない)

のような結果になりました。

文字列の長さが 0 かどうか、という評価ならば、当然、"0" も true となってしか
るべきと思いますし、数値として変換するならば、"a" はどう考えても数値ではない
ので、0 となり、これは false ではないかと思います。

文字列などの論理値以外の値を持つ変数を論理評価した際の真偽はどのように決定さ
れるのか、ご存知の方がおられましたら、ご教授いただければさわいです。

--
Osamu Shigematsu