論理型 (boolean)

bool 型は、ふたつの値だけを持ち、真偽の値を表します。 この値は、true または false のどちらかになります。

構文

bool リテラルを指定するには、定数 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) を使用します。 論理型が必要な場合には、値は自動的に bool 型に変換されるので、一般的にはキャストは不要です。 詳細な情報は 型の相互変換 のページを参照ください。

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

  • booleanfalse
  • integer0 (ゼロ)
  • float0.0 および -0.0 (ゼロ)
  • 空の文字列 ""、 および文字列"0"
  • 要素の数がゼロである 配列
  • unit 型 NULL (値がセットされていない変数を含む)
  • bool 型へキャストするように動作がオーバーロードされた内部オブジェクト。 例: 属性がない空要素から作成された SimpleXML オブジェクト。

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

警告

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

<?php
var_dump((bool) "");        // bool(false)
var_dump((bool) "0");       // 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)
?>