<?php
if ($x = 5) {
echo 'ok';
}
?>在小括号里,并没有做比较运算,只是做了一个赋值运算,为什么就为真了呢?就能输出ok了呢?赋值运算后,也没有返回值啊。

解决方案 »

  1.   

    你再试试$x = NULL
    $x = ''
    $x = 0
    $x = -1就知道什么问题了你的写法相当于
    $x = ……//赋值
    if($x)……
      

  2.   

    赋值运算,除非$x是0或者NULL,其他情况下都为真
      

  3.   

    你想当于是
    $x =5;
    if ($x)
    {
       //code
    }
    肯定是很为真啊
      

  4.   

    if(5){//C语言中除了0为假外,其他都为真.不然自己去试试.
    }