我想做(如下),可能吗?
$operator = >=;
if($value.$operator 400){
// ...
}
答案 0 :(得分:12)
您不能将运算符存储为变量,但可以存储函数(在PHP 5.3+中)。试试这个:
$operator = function($a){
return $a >= 400;
}
if($operator($value)){
}
或者,我猜你可以使用“普通”功能:
function operator($a){
return $a >= 400;
}
if(operator($value)){
}
答案 1 :(得分:2)
你可以做的另一件事(但从来没有做过)正在使用eval()
:
<?php
$value = 400;
$operator = '>=';
eval('if('.$value.$operator.' 400) echo "something";');
再一次,这只是为了告诉你它可以完成,但你永远不会使用eval()
或者我个人会杀死一只小猫!
如果你觉得自己需要这样的东西,我认真地认为你的设计存在很大的缺陷。
正如@rocket在the comments中所说的那样。更简洁的方法是:
<?php
$value = 400;
$operator = '>=';
eval("\$result = $value$operator 400;");
if ($result) {
echo 'Something';
}
没有这个更清洁并不意味着你可以使用。我很认真,如果你使用它,我会打猎你;)