比如下面代码,变量a是 true,输出显示是1,为什么不是 true 呢?
变量b是false,输出为何是空白呢?即什么输出也没有,这与javascript有很大区别呀?如果这样的话,变量的真和假,又有什么意义呢?
true和false,是专门的boolean类型呀,为什么输出时,true会转成数字输出呢,而false则根本没有输出,为什么呢?<html>
<?php
$a=true;
$b=false;
echo "变量a : " . $a . "<br/>";
echo "变量b : " . $b . "<br/>";
?>
</html>

解决方案 »

  1.   

    转换成了二进制码了啊
    0 就是false
    1 就是true
      

  2.   

    但是 false,并不会打印出 0 呀,而不根本不输出,所以我不明白。
    对于boolean型变量,用 echo 输出有什么规定呢?总应该有个原则吧。
      

  3.   

    false 就是 空了,不输出
      

  4.   

    1 是true ,但 true 不一定是 10 是false,但 false不一定是 0 ,可以是 ‘’ null 之类的
      

  5.   


    false是假呀,不是空。echo 输出一个false值,有规定是不输出吗?
      

  6.   

    这个是php的feature,这个问题不需要深究,知道就好了。
    多看看手册
    ==============================================================
    字符串转换
    可以用 (string) 标记或者 strval() 函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。例如当使用 echo() 或者 print() 函数时,或者将一个变量值与一个字符串进行比较的时候。阅读手册中有关类型和类型戏法中的部分有助于更清楚一些。参见 settype()。 布尔值 TRUE 将被转换为字符串 "1",而值 FALSE 将被表示为 ""(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。 整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。 数组将被转换成字符串 "Array",因此无法通过 echo() 或者 print() 函数来输出数组的内容。请参考下文以获取更多提示。 对象将被转换成字符串 "Object"。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数 get_class()。自 PHP 5 起,如果合适可以用 __toString() 方法。 资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 PHP 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数 get_resource_type()。 NULL 将被转换成空字符串。 正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。请参阅函数 print_r() 和 var_dump(),对于调试来说,这些是更好的打印值的方法。
      

  7.   

    php有些东西就是这样的,明白就是了。他毕竟对数据类型的要求不想OO语言那么严格
    有的问题没必要深究。