布林值
布林值是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 |