Установить переменные в глобальной области видимости в цикле
Я хочу определить ряд временных глобальных переменных в 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 ответа
Так как вы используете '
это всегда будет считаться строкой
Попробуйте $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;
}
Это потому, что одинарные кавычки не могут анализировать переменные, поэтому вы должны использовать двойные кавычки. Вы должны знать основную разницу между ними.
Прежде всего вам не нужны кавычки вокруг глобальной переменной попробуйте это
global $var;
Вы можете попробовать изменить вашу переменную, то есть:
for ($i = 1; $i<= 10; $i++) {
$var = '$MyGlobalVar'.$i;
$foo = $var;
global $foo;
}