布林值

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

results matching ""

    No results matching ""