<?php
echo (11=="011xxxxx来了x")? "yes": "no";
echo "<br>";
echo ("011xxxxx来了x"==11)? "yes": "no";
echo "<br>";
echo (1=="011xxxxx来了x")? "yes": "no";
echo "<br>";
echo (22=="022xxxxx来了x")? "yes": "no";
echo "<br>";
echo ("011"=="011xxxxx来了x")? "yes": "no";
echo "<br>";
echo (44=="011xxxxx来了x")? "yes": "no";
echo "<br>";
?>
输出结果:
yes
yes
no
yes
no
no
一边是数字时,等于貌视把字符串前面的数字拿来比较(数字放后面都是no),比较怪异,难道这是php特性。。

解决方案 »

  1.   

    <?php
    $foo = 1 + "10.5";                // $foo is float (11.5)
    $foo = 1 + "-1.3e3";              // $foo is float (-1299)
    $foo = 1 + "bob-1.3e3";           // $foo is integer (1)
    $foo = 1 + "bob3";                // $foo is integer (1)
    $foo = 1 + "10 Small Pigs";       // $foo is integer (11)
    $foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
    $foo = "10.0 pigs " + 1;          // $foo is float (11)
    $foo = "10.0 pigs " + 1.0;        // $foo is float (11)     
    ?>
    看看这个 我觉得 当一个整形和String运算的时候会忽略String的字符吧汗,这问题以前还真没注意!!!
      

  2.   

    echo "21222xxx"-1;//21221
    echo "x21222xxx"-1;//-1
    就是根据需求判断,直接转换类型
    知道了,php真强悍,这玩意都可以