如何在php中使用字符串内的if条件
我想知道是否有这样的方法:如何在php中使用字符串内的if条件,php,string,if-statement,Php,String,If Statement,我想知道是否有这样的方法: $t1=1; $t2=2; $t3="$t1>$t2"; if($t3) echo "Greater"; else echo "Smaller"; 这将评估为真,因为$t3是一个字符串,但这是错误的 那么有没有一种方法可以在字符串中包含if条件呢 我听说我们可以使用eval来实现这一点: 但是这怎么可能呢?为此,不需要计算字符串。只需将其作为原始条件写入,它将为您提供一个布尔值,您可以按照if条件中的情况进行计算: $t3 = $t1 >
$t1=1;
$t2=2;
$t3="$t1>$t2";
if($t3)
echo "Greater";
else
echo "Smaller";
这将评估为真,因为$t3是一个字符串,但这是错误的
那么有没有一种方法可以在字符串中包含if条件呢
我听说我们可以使用eval来实现这一点:
但是这怎么可能呢?为此,不需要计算字符串。只需将其作为原始条件写入,它将为您提供一个布尔值,您可以按照if条件中的情况进行计算:
$t3 = $t1 > $t2;
顺便说一句,如果
$t1
和$t2
相等,代码中的else
将进行计算。如果,你可以用来解决这个问题,但这只是我想指出的。很可能你没有注意到这一点,而这个问题来自糟糕的设计。
为什么不让它变得公正呢
if ($t1>$t2) echo "greater";
考虑到PHP页面,这看起来应该是可行的
OP特别希望它是一个字符串。谢谢,你是对的,一个else-if会更好,我把它作为一般规则写了下来。看看你所附链接中的答案,这是完全相同的例子eval()为什么不如果($t1>$t2)echo“更大”else-echo“更小”
?链接中包含的示例对我不起作用,所以,我想再问一遍!!!我决定使用eval(),这似乎是更好的解决方案。@WIll,@Col。谢谢你的帮助。
$t1=1;
$t2=2;
$t3="return $t1>$t2;";
if(eval($t3))
echo "Greater";
else
echo "Smaller";