如何在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";