<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>