<div style="height:30px;line-height:30px;background:#f1f1f1;font-weight:bold;font-size:14px;padding:5px 10px;margin-bottom:10px;border-bottom:1px solid #ccc">類型>Boolean布爾類型</div>
**這是最簡單的類型。boolean 表達了真值,可以為 TRUE 或 FALSE。注意不區分大小寫。**
賦值:$a=true;
判斷一個變量是否為true,或者為false,可以用如下方法:
~~~
if ($a) {}
~~~
和
~~~
if (!$a) {}
~~~
相關函數:is_bool()判斷某個變量是否為布爾類型。
**關于1,0,true,false。**
以下情景,被認為false:
1.false本身;
2.整形0或者字符"0";
3.浮點:0.0。注意:字符“0.0”不等于false。
4.不包括任何元素的數組。空數組。
5.不包括任何成員變量的對象(僅 PHP 4.0 適用)
6.特殊類型 NULL(包括尚未賦值的變量)
7.從空標記生成的 SimpleXML 對象
關于0跟false比較:
如果一個字符跟數字比較,會將字符先轉化為數字。然后比較。intval任何非數字字符結果都為0;如果兩個都是字符串數字,將會按數字來了比較。
8.所有字符類浮點型,都被看成純字符。不可以等于false。
~~~
0==“false” true int
"0"=="false" false
"0.0"==false false
"false"==false false (只跟0比較的時候,才可能會被認為"false"為bool)
~~~
注意,bool類型前面可以加多個!(非)不報錯。
***所有其它值都被認為是 TRUE(包括任何資源)。***
一些關于1跟false混淆點:
~~~
"true"==1; false
111==true;true
"true"==true; true
0=="0" true
"0.0"==0 true
"0.0"=="0" true
~~~
復合運算符的兩種特例:
~~~
$x=TRUE;
$y=FALSE;
$z=$y OR $x;
將返回 false;
原因:“=”的運算級別比or高。
~~~
~~~
$x=TRUE;
$y=FALSE;
$z=$y || $x;
將返回 true
原因: ||運算級別比=高。
~~~
***注意:在跟運算符做比較的時候,true跟false都會被當做數字來使用。***
~~~
true:1 false:0
true+true=2;
true-false=1;
~~~
~~~
echo true ? 'true' : 'false'
返回true
~~~
~~~
echo (string) false;
返回空
echo (string) true;
返回1
~~~
歸納:
1.數字字符串跟字符串為相等。
2.非數字字符串跟數字或數字字符想比,則會將非數字字符串轉化為數字。一般轉化為0.
3.非數字字符比較,則為純字符串之間的比較。
4.做運算的時候,true==1,false==0;
5.關于false 打印。一般false打印為空。但是實際上 他返回的是bool類型的false。
<div style="background:#f0f0f0;text-align:center;font-size:12px;padding:20px">
? 2017-版權 杜二紅 如要轉載,請注明出處!
</div>