布林
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)