我想在PHP中定义一些名为$MyGlobalVar1
,$MyGlobalVar2
的临时全局变量,但问题是关键字'global'字面上取变量名:
for ($i = 1; $i<= 10; $i++) {
$var = '$MyGlobalVar'.$i;
global $var;
}
即。 $var
现在是全球性的。
设置引号不起作用,因为'global'需要'$'并且会在单引号处停止执行:
for ($i = 1; $i<= 10; $i++) {
$var = '$MyGlobalVar'.$i;
global '$var';
}
如何将变量设置为全局范围?感谢。
答案 0 :(得分:1)
因为您使用'
,所以它将始终被视为字符串
尝试 $GLOBALS为了您的目的
for ($i = 1; $i<= 10; $i++)
{
// acess as $GlOBALS['MyGlobalVar'.$i] and do whatever you want
$GLOBALS['MyGlobalVar'.$i] = null
}
答案 1 :(得分:1)
你也应该能够做到以下几点:
for ($i = 1; $i<= 10; $i++) {
$varName = 'MyGlobalVar'.$i;
global $$varName;
}
答案 2 :(得分:0)
这是因为单引号无法解析您必须使用双引号的变量。你应该知道它们之间的基本区别。
首先,你不需要围绕全局变量的引号试试这个
global $var;
答案 3 :(得分:0)
您可以尝试变量变量,即:
for ($i = 1; $i<= 10; $i++) {
$var = '$MyGlobalVar'.$i;
$foo = $var;
global $foo;
}