好的,所以我想知道是否有任何(其他的,最好是简单的)方法将字符串转换为变量.
我的代码有效,如下:
echo eval('return $'. $date . ';');
Run Code Online (Sandbox Code Playgroud)
$ date包含一个字符串.现在,代码可以工作,我可以保留它,因为它是没有别的,因为$ date是从预编程的类声明中调用的:
Time::Format($id = 'id', $name = 'name', $date = 'date->format(Y)');
Run Code Online (Sandbox Code Playgroud)
我问的原因是由于PHP官方对其使用的免责声明/警告:eval()语言结构非常危险,因为它允许执行任意PHP代码.因此不鼓励使用它.如果您已仔细验证除了使用此构造之外没有其他选项,请特别注意不要将任何用户提供的数据传递到其中,而不事先正确验证它.
因此,我认为我可以安全地使用它,因为没有用户输入的数据被PHP评估,它是我设置为编码器的字符串,但我想要使用它的第二个意见,以及任何输入另一个简单的方法来做到这一点(因为,如果我可以避免它,我宁愿不使用一个复杂的,可能很长的代码块来完成一些可以简单地完成的事情(只要它可以安全快速和脏) .
PHP的变量变量将帮助你.您可以通过在变量前添加另一个美元符号来使用它们:
$foo = "Hello, world!";
$bar = "foo";
echo $$bar; // outputs "Hello, world!"
Run Code Online (Sandbox Code Playgroud)