我想在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';
}
如何将变量设置为全局范围?谢谢。
由于您使用'
,它将始终被视为字符串
试$GLOBALS用于您的目的
for ($i = 1; $i<= 10; $i++)
{
// acess as $GlOBALS['MyGlobalVar'.$i] and do whatever you want
$GLOBALS['MyGlobalVar'.$i] = null
}
您还应该能够执行以下操作:
for ($i = 1; $i<= 10; $i++) {
$varName = 'MyGlobalVar'.$i;
global $$varName;
}
这是因为单引号不能解析变量,所以必须使用双引号。你应该知道它们之间的基本区别。
首先你不需要在全局变量周围加引号试试this
global $var;
你可以尝试改变你的变量,例如:
for ($i = 1; $i<= 10; $i++) {
$var = '$MyGlobalVar'.$i;
$foo = $var;
global $foo;
}