использовать все глобальные переменные одновременно в функции php

У меня есть PHP-скрипт с примерно 50 глобальными переменными.
У меня есть около 18 функций, где мне нужны глобальные переменные.

Мне нужно почти 40 глобальных переменных в большинстве функций.
Я включил их сейчас как:

      function example1() {
global $1, $2, $3, ..... $40;
}

function example2() {
global $1, $2, $3, ..... $40;
}

Есть ли более простой способ сделать это?

Например включить все глобальные переменные сразу?

В массиве может быть?

Я надеюсь услышать несколько хороших предложений!

0

Решение

Я передавал много переменных глобальным. Теперь я узнал, что я должен был на & для каждого цикла непосредственно изменять данные в массиве вместо того, чтобы объявлять их и пытаться передать их глобальным переменным.

Чтобы иметь возможность напрямую изменять элементы массива в цикле, перед $ value следует указать &, В этом случае значение будет присвоено по ссылке.

      <?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
unset($value); // break the reference with the last element
?>

Спасибо за помощь! Я мог бы удалить много кодов и переменных …

0

Другие решения

Вы можете просто включить все глобалы.

function myFunc() {
foreach ($GLOBALS as $n => $v) {
global $$n;
}
... code using any global variable
}

Или вы можете включить свой собственный предопределенный набор.

$myGlobals = array('n1','n2');

function myFunc() {
foreach ($GLOBALS['myGlobals'] as $n) {
global $$n;
}
... code using any global variable named in $myGlobals
}
0

В PHP есть функция extract, которая преобразует все элементы в массиве в переменные, используя их ключи, как говорится, поскольку переменная $ GLOBALS содержит все глобальные переменные, просто извлеките ее в своей функции.

$name = 'John Doe';
function myFunction(){
extract($GLOBALS);
echo $name;
}
0
По вопросам рекламы [email protected]