論理型 (boolean)

論理型は、最も簡単な型です。bool は、真偽の値を表します。 この値は、true または false のどちらかになります。

構文

boolean リテラルを指定するには、定数 true または false を指定してください。 両方とも大文字小文字に依存しません。

<?php
$foo 
True// 値TRUEを$fooに代入する
?>

通常、bool 型の値を返す演算子を使用してから、 制御構造にその結果を渡します。

<?php
// == は、boolean型を返す演算子
if ($action == "show_version") {
    echo 
"バージョンは1.23です。";
}

// これは冗長
if ($show_separators == TRUE) {
    echo 
"<hr>\n";
}

// 上の例は次のように簡単に書くことができます。
if ($show_separators) {
    echo 
"<hr>\n";
}
?>

boolean への変換

bool に明示的に変換を行うには、キャスト (bool) または (boolean) を使用します。しかし、演算子、関数、制御構造が bool 型の引数を必要とする場合には、値は自動的に変換されるため、 多くの場合はキャストは不要です。

型の相互変換 も参照ください。

bool に変換する場合、次の値は false とみなされます。

  • booleanfalse
  • integer の 0 (ゼロ)
  • float の 0.0 および -0.0 (ゼロ)
  • 空の文字列、 および文字列の "0"
  • 要素の数がゼロである 配列
  • 特別な値 NULL (値がセットされていない変数を含む)
  • 属性がない空要素から作成された SimpleXML オブジェクト。つまり、子要素も属性もない要素です。

その他の値は全て true とみなされます (全ての resource および NAN を含みます)。

警告

-1 は、他のゼロでない数と同様に (正負によらず) true とみなされます。

<?php
var_dump
((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)
var_dump((bool) -2);        // bool(true)
var_dump((bool) "foo");     // bool(true)
var_dump((bool) 2.3e5);     // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array());   // bool(false)
var_dump((bool) "false");   // bool(true)
?>