定义$a="0",$b="1",进行比较,
然后定义$a=0,$b=1,进行比较,有什么区别?
php解析器会把他们怎么处理,尤其是$a="0",这样是定义字符串,但是比较的时候把他们转换了吗?

解决方案 »

  1.   

    $a="0", $b="1"的时候是按照字符串比的
    $a=0, $b=1是按照数字比的
    $a="0", $b=1的时候是将$b转换为字符串然后和$a比较
      

  2.   

    如果字符串是数值,php会将字符串转换成数值类型进行比较我正在使用《Csdn收音机》第一时间获取最新动态!
      

  3.   


    $a = "5";
    $b = 5;
    echo ($a == $b) ? "Y" : "N";/*
    输出结果 Y
    */
    因此  “如果字符串是数值,php会将字符串转换成数值类型进行比较” 我正在使用《Csdn收音机》第一时间获取最新动态!
      

  4.   

    我同意7楼的观点“如果字符串是数值,php会将字符串转换成数值类型进行比较”,而不是1楼说的“$a="0", $b=1的时候是将$b转换为字符串然后和$a比较”。理由如下:
    echo ('5' == 5) ? 'Y' : 'N';    // 输出为 Y
    echo ('5.0' == 5) ? 'Y' : 'N';  // 输出为 Y
    echo ('5.0' == '5') ? 'Y' : 'N';// 输出为 Y————————
    淘宝购物也能打折?看看咘唂网就知道了 ^_^
    喜欢这个签名档吗?你也可以制作自己的签名档
      

  5.   

    PHP手册上有这么一段话:
    PHP 的自动类型转换的一个例子是加号“+”。如果任何一个运算数是浮点数,则所有的运算数都被当成浮点数,结果也是浮点数。否则运算数会被解释为整数,结果也是整数。注意这并没有改变这些运算数本身的类型;改变的仅是这些运算数如何被求值。 
    根据这个可以理解为对比较来说, 也应该是先转换为整数
    因此1楼的是不正确的, 7楼的是正确的
      

  6.   

    不仅如此(不仅是因为有整数参与比较,才把字符串转为整数进行比较),请看我在10楼给出的代码,只要字符串的值符合“数值”的特征,就是先转换后再参与比较的,最明显的就是 '5.0' == '5'
    ————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  7.   

    <?php$a=5;$b="5";var_dump($a);//int(5)
    echo "<br>";
    var_dump($b);//string(1) "5"
    echo "<br>";if ($a==$b) //ture
    {
    echo "ture";
    }else{
    echo "false";
    }echo "<br>";if ($a===$b) //注:这个结果返回false,会比较数据类型是否相等
    {
    echo "ture";
    }else{
    echo "false";
    }
    ?>
      

  8.   


    <?php
    echo gettype(max("0",1));//返回integer,按照整型来处理
    echo gettype(max("0","1"));//返回string,按照字符串来处理
      

  9.   

    PHP中没有类型 .  类型随时都在变化的.   
      

  10.   

    $a=0,$b=1,
    这个可直接比,php代码对字符类型要求不强的