1

我想在 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

4 回答 4

1

因为您使用'它将始终被视为字符串

为您的目的尝试 $GLOBALS

for ($i = 1; $i<= 10; $i++)
 { 
// acess as $GlOBALS['MyGlobalVar'.$i] and do whatever you want
   $GLOBALS['MyGlobalVar'.$i] = null
}
于 2013-05-13T05:00:01.227 回答
1

您还应该能够执行以下操作:

for ($i = 1; $i<= 10; $i++) { 
    $varName = 'MyGlobalVar'.$i;
    global $$varName;
}
于 2015-07-20T16:57:04.470 回答
0

这是因为单引号不能解析你必须使用双引号的变量。您应该知道它们之间的基本区别。

首先你不需要在全局变量周围加上引号试试这个

global $var;
于 2013-05-13T04:54:17.717 回答
0

你可以尝试改变你的变量,即:

for ($i = 1; $i<= 10; $i++) { 
    $var = '$MyGlobalVar'.$i;
    $foo = $var;
    global $foo;
}
于 2013-05-13T04:56:37.203 回答