布林值
布林值是PHP中較簡單的資料型別,他的值全部只有兩種可能
分別是「TRUE」和「FALSE」,翻成中文就是「真」和「假」
而「TRUE」和「FALSE」是沒有區分大小寫的,也就是說,下面的寫法都是正確的
<?php
$boolean_val = true;
$boolean_val = TRUE;
$boolean_val = false;
$boolean_val = FALSE;
?>
其他資料型別強制轉型成布林值
有時為了確保某一變數之資料型別,或是特定需要某一種型別的變數
我們會進行變數的強制轉型
在PHP內使用boolval()
、(bool)
、(boolean)
可以將其他型別強制轉型成整數
<?php
$intNum = 10;
$result = boolval($intNum); //使用函數
$result = (bool)$intNum; //在前方的(bool)意味著要強制轉成布林值(bool為boolean之縮寫)
$result = (boolean)$intNum; //在前方的(boolean)意味著要強制轉成布林值
//這邊強制轉型後$result內儲存的值是true
?>
強制轉型成「布林值」的規則
強制轉型之「變數的型別」與「儲存的值」符合以下情況,在轉型為布林時,結果為「FALSE」:
boolean
型別值為FALSE
的變數integer
型別,值為0
的變數float
型別,值為0.0
的變數string
型別,值為空字串“”
或"0"
的變數array
型別,且陣列中沒有任何元素(空陣列)的變數- NULL型別的變數
- 無成員之object型別之變數(PHP 4之前,PHP4之後object轉型永遠為TRUE)
除了以上狀況,轉型的結果都是「TRUE」
怕大家搞混,舉例說明一下
轉型語法 | 結果 | 說明 |
---|---|---|
(bool) ""; | false | 空字串強制轉型為false |
(bool) "你好"; | true | 非空字串強制轉型為true |
(bool) "false"; | true | 非空字串強制轉型為true |
(bool) "0"; | false | 非空字串強制轉型為false |
(bool)"0.0" | true | 非空字串強制轉型為true |
(bool) 0; | false | 整數0強制轉型為false |
(bool) 0.1; | true | 浮點數非0.0強制轉型為true |
(bool) 1; | true | 整數非0強制轉型為true |
(bool) -2; | true | 整數非0強制轉型為true |
(bool) array(0); | true | 有元素的陣列強制轉型為true |
(bool) array(); | false | 無元素的陣列強制轉型為false |
(bool) array("") | true | 有元素的陣列強制轉型為true |
(bool) null; | false | NULL型別為false |