在循环中将变量设置为全局范围

时间:2013-05-13 04:52:39

标签: php loops global-variables

我想在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';
}

如何将变量设置为全局范围?感谢。

4 个答案:

答案 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;
}