1

好的,所以我想知道是否有任何(其他,最好是简单的)方法将字符串转换为变量。

我的有效代码如下:

echo eval('return $'. $date . ';');

$date 包含一个字符串。现在,代码可以工作了,如果没有别的,我可以保持原样,因为 $date 是从预编程的类声明中调用的:

Time::Format($id = 'id', $name = 'name', $date = 'date->format(Y)');

我问的原因是由于 PHP 官方对其使用的免责声明/警告: eval() 语言结构非常危险,因为它允许执行任意 PHP 代码。因此不鼓励使用它。如果您已仔细验证除了使用此构造之外别无选择,请特别注意不要将任何用户提供的数据传入其中,而无需事先正确验证。

因此,我认为我可以安全地使用它,因为 PHP 没有对用户输入的数据进行评估,这是我设置为编码器的字符串,但我想对它的使用以及任何使用提出第二意见输入另一种简单的方法来做到这一点(因为,如果我可以避免它,我宁愿不使用复杂且可能很长的代码块来完成可以简单完成的事情(前提是快速而肮脏地做是安全的) .

4

1 回答 1

7

PHP 的变量变量将在这里帮助您。您可以通过在变量前面加上另一个美元符号来使用它们:

$foo = "Hello, world!";
$bar = "foo";
echo $$bar; // outputs "Hello, world!"
于 2013-04-04T22:37:44.073 回答