Доступ к глобальной переменной внутри функции

Задача
Необходимо получить доступ к глобальной переменной внутри функции.

Решение
Поместите глобальную переменную в локальную область видимости с помощью ключевого слова global:

function eat_fruit($fruit) {
global $chew_count;
for ($i = $chew_count; $i > 0; $i--) {
...
}
}


Или сошлитесь на нее непосредственно в массиве $GLOBALS:

function eat_fruit($fruit) {
for ($i = $GLOBALS['chew_count']; $i > 0; $i--) {
...
}
}


Обсуждение
Если внутри функции используется некоторое количество глобальных переменных, то ключевое слово global может сделать синтаксис функции более легким для понимания, особенно если глобальные переменные размещены в строках.

Глобальные переменные можно поместить в локальную область видимости, указав ключевое слово global со списком переменных, разделенных запятыми:

global $age,$gender,shoe_size;


Можно также задавать имена глобальных переменных с помощью переменных переменных:

$which_var = 'age';
global $$which_var; // ссылается на глобальную переменную $age


Однако если функция unset() вызывается для переменной, помещенной в локальную область видимости с помощью ключевого слова global, то переменная становится не установленной только внутри функции. Для того чтобы сбросить переменную в глобальной области, надо вызвать функцию unset() для элемента массива $GLOBALS:

$food = 'pizza';
$drink = 'beer';
function party() {
global $food, $drink;
unset($food); // едим пиццу
unset($GLOBALS['drink']); // пьем пиво
}
print "$food: $drink\n";
party();
print "$food: $drink\n";
pizza: beer
pizza:


Видно, что переменная $food остается той же самой, в то время как переменная $drink стала неустановленной. Объявление переменной глобальной внутри функции подобно присваиванию адреса глобальной переменной локальной переменной:

$food = &GLOBALS['food'];
Теги:
global, drink, внутри, функции, GLOBALS, unset, fruit, function, count, pizza, область, видимости, помощью, which, print, слово, party, слова, ключевого, вызвать, чтобы, сбросить, становится, вызывается, функция, Однако, ссылается, области, Доступ, функцию, элемента, массива, имена, пиво , beer
Добавлено: 21 Июля 2018 13:36:38 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...