日期:2014-05-17  浏览次数:20620 次

关于运算符的问题。为毛这样?
PHP code

if($item[$column_name] .$operation. $info)
        {
            echo $item[$column_name] .$operation. $info;echo '=====true';echo '<br>';
            return true;
        }else{
            echo $item[$column_name] .$operation. $info;echo '=====false';echo '<br>';
            return false;
        }
输出:
508205462=505765854=====true
10>1234567=====true
20<66666=====true

解释:$item[$column_name] 的结果就相当于运算符的第一个 ,$operation是运算符,$info是值,为什么直接写if(10>1234567)返回假,用程序运算出来全部为真??




------解决方案--------------------
因为有“.”,所以你那些变量当做字符串连接起来了
如果想让他们当做表达式运算,需用 eval 函数

eval('return '. $item[$column_name] .$operation. $info. ';')