PHP – объявить глобальный массив

У меня проблема с неопределенной переменной, когда я пытаюсь использовать массив внутри функции. Примером может служить код ниже. Как я могу получить доступ к массиву $prev внутри функции hello() ? Я попытался выполнить поиск, но я не знаю, как использовать $GLOBALS[$varname] когда переменная является массивом. Спасибо за любую помощь!

 <?php $prev = [0,1,2]; function hello(){ echo $prev[1]; } hello(); hello(); hello(); ?> 

Вы также можете передать переменную в функцию:

 $prev = [0,1,2]; function hello(array $array){ echo $array[1]; } hello($prev); hello($prev); hello($prev); ?> 

Другой способ – передать переменную по ссылке .

 function hello(&$array){ $array[1]++; echo $array[1]; } 

Это способ использовать его как глобальный. Кстати, есть и другие способы использовать его внутри функции hello.

 $prev = [0,1,2]; function hello(){ global $prev; echo $prev[1]; } hello(); hello(); hello(); 

Вы могли бы сделать что-то вроде:

 $GLOBALS["prev"] = [0,1,2]; function hello(){ echo $GLOBALS['prev'][1]; } hello(); 

Однако рассмотрите возможность сделать что-то вроде:

  $prev = [1,2,3]; function hello($prev) { echo $prev[1]; } hello($prev); 

В качестве альтернативного решения:

 class GlobalsContainer { public static $prev=[1,2,3]; } function hello() { echo GlobalsContainer::$prev[1]; } hello(); 

Объявите массив с ключевым словом global внутри function . Видеть это –

 <?php function hello(){ global $prev = [0,1,2]; echo $prev[1]; } ?>