布林

Boolean 是一種型別,有兩個值,表示為 truefalse

此程式碼將 $foo 的值設定為 true,將 $bar 設定為 false

$foo = true;
$bar = false;

truefalse 不區分大小寫,所以 TRUEFALSE 也可以使用,甚至 FaLsE 也是可以的。在大多數程式碼風格指南中使用小寫字母是最常見的,例如 PSR-2

布林可以在 if 語句中使用:

if ($foo) { //same as evaluating if($foo == true)
    echo "true";
}

由於 PHP 是弱型別的,如果上面的 $foo 不是 truefalse,它會自動強制轉換為布林值。
以下值導致 false

  • 零值:0(整數),0.0(浮點數)或'0'(字串)
  • 一個空字串''或陣列 []
  • null(未設定變數的內容,或分配給變數)

任何其他值都會導致 true

為避免這種鬆散的比較,你可以使用 === 強制進行強比較,=== 比較值和型別。請參閱型別比較瞭解詳情。

要將型別轉換為布林值,你可以在型別之前使用 (bool)(boolean)

var_dump((bool) "1"); //evaluates to true

或者呼叫 boolval 函式:

var_dump( boolval("1") ); //evaluates to true

布林轉換為字串(注意 false 產生一個空字串):

var_dump( (string) true ); // string(1) "1"
var_dump( (string) false ); // string(0) ""

布林值轉換為整數:

var_dump( (int) true ); // int(1)
var_dump( (int) false ); // int(0)

請注意,相反的情況也是可能的:

var_dump((bool) "");        // bool(false)
var_dump((bool) 1);         // bool(true)

所有非零都將返回 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)