在php里定义一个变量,它有初始值吗?
单独echo $t;就没有输出
但是如果:
    if($t==0){
       $t=8;
}
  echo $t;就可以输出8
 为什么呢?请指教,谢谢!!

解决方案 »

  1.   

    看一下PHP关于true和false的定义
      

  2.   

    测试一下,应该输出全是1
    <?php
    class o {
    }echo false == 0.00;
    echo false == 0;
    echo false == '';
    echo false == null;
    echo false == '0';
    echo false == array();
    echo false == new o();
      

  3.   

    你这样试试就知道原因鸟
    if($t===0){
          $t=8;
      

  4.   


    其实,if语句在判断的时候已经给$t赋值了,赋值后肯定为真;接着重新给变量赋值,因此,最后输出$t=8。
      

  5.   

    真的已经赋值了吗?if($t===0){
          $t=8;

    echo $t;
      

  6.   

    php中若无显式的赋值,则变量的初值为空,其类型依据上下文决定
      

  7.   

    if($t===0){
    $t=8;
    }
    echo $t;
    在这段代码中,===是判断类型和值都要相等.这里输出$t是没有值if($t==0){
    $t=8;
    }
    echo $t;$t没有值,转换为boolean时为false 
    0转换为boolean 是也为false
    所以会执行if中的代码 让$t=8
      

  8.   

    应该是值没有给好吧!php初始值很怪的.