【问题标题】:How to make a conditional statement out of a string如何从字符串中创建条件语句
【发布时间】:2012-06-23 02:13:05
【问题描述】:

这可能吗?这个想法是有以下几点:

if ($some_statement) { ... }

其中 $some_statement 变量是一个字符串,如下所示:

$some_statement = ' $day == "Monday" && $weather == "sunny" ';

我已经对大括号和 eval 函数进行了一些实验,但无法正常工作。谢谢你们,你们太棒了!

【问题讨论】:

  • 字符串从何而来,是用户输入的吗?它是受信任的用户输入吗?
  • 很多人可能觉得写if( $day == "Monday" && $weather == "sunny" ) 更容易
  • 是的,不应评估用户输入。除非非常小心。

标签: php string variables conditional


【解决方案1】:
If (eval($some_statement)) {

应该可以。

但不要这样做,除非你知道自己在做什么,从你的问题来看,你不知道。

评估字符串中的代码非常危险,很容易造成严重的安全漏洞。

【讨论】:

  • 非常感谢,是的,你是对的——我不知道我在做什么 :)
【解决方案2】:

您可以为此使用eval,但请记住,字符串中的语句必须是完整的PHP语句。

$condition = 'return $day == "Monday" || $day == "Sunday";';
if (eval($condition)) { ... }

【讨论】:

  • 谢谢,我认为如果没有“return”和“;”这将无法工作在字符串的末尾!
猜你喜欢
  • 1970-01-01
  • 2011-12-05
  • 2019-03-12
  • 2018-08-23
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2011-05-09
相关资源
最近更新 更多