如果condtion在php中动态添加条件

Ani*_*ish 5 php

我试图在if条件中动态添加条件.但它没有用.请帮我解决这个问题.

我正在尝试这样的代码

 $day_difference = "some integer value";

  if(sheduled_time == 'evening'){
        $condition = '>';
    }else{
      $condition = '==';
    }
Run Code Online (Sandbox Code Playgroud)

然后

if($day_difference.$condition.  0){ 
  echo "something";       
 }else{
   echo "h";
 }
Run Code Online (Sandbox Code Playgroud)

Ger*_*uis 5

您需要的是eval()方法。

$var1 = 11;
$var2 = 110;
$cond1 = '$var1 > $var2';
$cond2 = '$var1 < $var2';

if(eval("return $cond1;")){
   echo $cond1;
}

if(eval("return $cond2;")){
   echo $cond2;
}
Run Code Online (Sandbox Code Playgroud)

如下所述,使用此方法时应采取必要的预防措施!

  • `eval()语言构造非常危险,因为它允许执行任意PHP代码。因此不鼓励使用它。如果您已经仔细验证了除了使用此构造之外没有其他选择,请特别注意不要在未事先正确验证的情况下将任何用户提供的数据传递到其中。 (4认同)

Dan*_*iel 5

杰拉尔德解决方案的替代品; 我建议您使用一个使用switch-case操作验证输入的函数:

function evaluate ($var1, $operator, $var2)
{
    switch $operator
    {
         case: '<': return ($var1 < $var2);
         case: '>': return ($var1 > $var2);
         case: '==': return ($var1 == $var2);
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)