我在网站上有以下代码。
$magic_number_output = 'The magic number is: $magic_number';
function show_magic_number($magic_number) {
global $magic_number_output;
eval("\$magic_number_output = \"$magic_number_output\";");
echo '
' . $magic_number_output;
}
该变量$magic_number_output
在一个单独的 PHP 文件中设置,然后在函数内使用 global 引用,因为对于不同的语言会有不同版本的该变量。$magic_number
被传递给函数,并在变量中使用eval()
. 但是,当函数被多次调用时,$magic_number
发送给函数的第一个值不会改变。例如,如果这样调用:
show_magic_number(5);
show_magic_number(2000);
...输出是这样的:
幻数是:5 幻数是:5
...当我希望它是这样的时候:
幻数是:5 神奇的数字是:2000
显然,我误解了如何global
和eval()
工作,并尝试寻找答案和实验,但我实在是太菜鸟了,无法找出解决方案。我认为可能有某种方法可以每次都重置全局变量,这样它就不会继续引用第一次发送给函数的$magic_number
(ie )。5
任何人都可以提出解决这个问题的方法吗?