【问题标题】:How to use if condition inside string in php如何在php中的字符串内使用if条件
【发布时间】:2010-09-21 05:21:52
【问题描述】:

我想知道是否有办法使用这样的东西:

$t1=1;
$t2=2;
$t3="$t1>$t2";

if($t3)
   echo "Greater";
else
   echo "Smaller";

这将评估为真,因为 $t3 是一个字符串,但这是错误的!!!

那么有没有办法在字符串中包含 if 条件。

我听说我们可以为此使用 eval: PHP - if condition inside string

但这怎么可能???

【问题讨论】:

  • 查看你附加的链接中的答案,这与 eval() 的例子完全相同
  • 为什么不if ($t1 > $t2) echo "Greater" else echo "Smaller"
  • 链接中包含的示例对我不起作用所以,我想再问一次!!!

标签: php string if-statement


【解决方案1】:

为此,您不需要评估字符串。只需将其写为原始条件,它就会为您提供一个布尔值,您可以在 if 条件中按原样进行评估:

$t3 = $t1 > $t2;

顺便说一句,您代码中的else 将评估$t1$t2 是否相等。您可以使用else if 来解决这个问题,但这只是我想指出的。

【讨论】:

  • OP 特别希望它在一个字符串中。
  • 谢谢,你说得对,else if会更好,我写的是一般规则。
【解决方案2】:

鉴于 PHP eval 页面,这看起来应该可以工作。

$t1=1;
$t2=2;
$t3="return $t1>$t2;";

if(eval($t3))
   echo "Greater";
else
   echo "Smaller";

【讨论】:

    【解决方案3】:

    您很可能没有注意到这一点,而这个问题来自糟糕的设计。
    为什么不让它只是

    if ($t1>$t2) echo "greater";
    

    【讨论】:

    • 我决定使用 eval() 这似乎是更好的解决方案。
    • @WIll, @ Col. 感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    相关资源
    最近更新 更多