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

?>

 

效果如下:

 

posted @ 2016-03-26 21:10  MatthewBlog  阅读(162)  评论(0)    收藏  举报

页脚