¿Es posible asignar una declaración condicional a una variable y usarla en una declaración if ? Por ejemplo, tengo el siguiente código donde la condición en la instrucción if cambiará de vez en cuando:
<?php $x = 2; //This "x > 5" value will come from a database $command = "x > 5";//Some times this value might be x > 5 || x == 1 if($command)//This will always be true no matter what since the content of the $command is not empty echo "x is bigger than 5"; else echo "x is smaller than 5";//I want this line to get executed since x is smaller than 5 in this case ?> El resultado esperado es x is smaller than 5 , pero lo que obtengo es que x is bigger than 5
Necesitas usar eval() . El $command tendrá que contener $ antes de las variables para que sea una sintaxis PHP válida.
$x = 2; $command = '$x > 5'; $result = eval("return ($command);"); if ($result) { echo "x is bigger than 5"; } else { echo "x is smaller than 5"; } Dado que eval() puede ejecutar código arbitrario, debe tener mucho cuidado con lo que permite poner en $command .