- 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=====true10>1234567=====true20<66666=====true解释:$item[$column_name] 的结果就相当于运算符的第一个 ,$operation是运算符,$info是值,为什么直接写if(10>1234567)返回假,用程序运算出来全部为真??
------解决方案--------------------
因为有“.”,所以你那些变量当做字符串连接起来了
如果想让他们当做表达式运算,需用 eval 函数
eval('return '. $item[$column_name] .$operation. $info. ';')