在循环中将变量设置为全局作用域



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

相关内容

  • 没有找到相关文章

最新更新