3.boolean类型的一个奇怪现象
$a = false;
$b = true;
$c = 1;
echo($a)."2"."<br>"; //echo($a)输出为空白,并不是0,也不是null,不占位置
echo($b)."<br>"; //1
echo($a+$c)."<br>"; //1
var_dump($a); //boolean false
var_dump($b); //boolean true
如上代码:true -> 1 ; false -> 空白
后面查了手册,发现是这样:
echo()不是一个函数(它是一个语言结构)
作用:输出一个或多个字符串
当转换为 boolean 时,以下值被认为是 FALSE :
- 布尔值
FALSE本身 - 整型值 0(零)
- 浮点型值 0.0(零)
- 空字符串,以及字符串 "0"
- 不包括任何元素的数组
- 不包括任何成员变量的对象(仅 PHP 4.0 适用)
- 特殊类型 NULL(包括尚未赋值的变量)
- 从空标记生成的 SimpleXML 对象
所有其它值都被认为是 TRUE (包括任何资源)。
所以boolean false 会转换为空字符串输出,也就是在浏览器中看不到任何显示了
而boolean true 会转换为 字符串 1输出
现象2
<?php
//布尔值不参加 ++或-- 运算
$a = true;
$b = ++$a;
$c = $a+$a;
$d = $a+1;
var_dump($b);
var_dump($c);
var_dump($d);
echo "<hr>";
$a1 = 1;
$b1 = ++$a1;
$c1 = $a+$a;
$d1 = $a1+1;
var_dump($b1);
var_dump($c1);
var_dump($d1);
?>
效果如下:


浙公网安备 33010602011771号