布林
Boolean 是一種型別,有兩個值,表示為 true 或 false。
此程式碼將 $foo 的值設定為 true,將 $bar 設定為 false:
$foo = true;
$bar = false;
true 和 false 不區分大小寫,所以 TRUE 和 FALSE 也可以使用,甚至 FaLsE 也是可以的。在大多數程式碼風格指南中使用小寫字母是最常見的,例如 PSR-2 。
布林可以在 if 語句中使用:
if ($foo) { //same as evaluating if($foo == true)
echo "true";
}
由於 PHP 是弱型別的,如果上面的 $foo 不是 true 或 false,它會自動強制轉換為布林值。
以下值導致 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)