Простой и понятный, как говорится в заголовке — Есть ли способ программно объявить глобальные переменные внутри функции в PHP? Например, из массива строк (которые являются именами глобальных переменных)
Да, если вы добавите переменные в $GLOBALS
массив они тогда доступны глобально, как и любой другой глобальный.
function add_globals($arr)
{
foreach ( $arr as $idx => $name ) {
$GLOBALS[$name] = $idx;
}
}
$names = array('aa','bb');
add_globals($names);
echo $aa.PHP_EOL;
echo $bb.PHP_EOL;
РЕЗУЛЬТАТ
0
1
Я просто использую индекс массива $ names в качестве значения для каждого нового глобала, вы можете использовать что угодно
Других решений пока нет …