Глобальные переменные в PHP
![Глобальные переменные в PHP](/images/articles/php-global.jpg)
В JavaScript глобальные переменные имеют огромное значение, и они постоянно используются при написании скриптов. В PHP глобальные переменные - редко замечаемое явление, особенно если Вы используете ООП, однако, знать о них стоит. Если Вы вдруг не знаете про глобальные переменные в PHP, то эта статья заполнит этот пробел в знаниях.
Существуют глобальные и локальные переменные. Глобальные, как следует, из их названия доступны на протяжении всего скрипта, в том числе и внутри функций. Локальные переменные объявляются внутри функций и доступны они только внутри них.
Давайте разберём вот такой пример PHP-кода:
<?php
$x = 5; // Создаём переменную (разумеется, она глобальная)
function myFunc1() {
$x = 7; // Локальная переменная, доступная только внутри функции
}
function myFunc2() {
global $x; // Указываем, что $x - это глобальная переменная
$x = 7; // Изменяем глобальную переменную $x
}
myFunc1();
echo $x; // Выведет 5
echo "<br />";
myFunc2();
echo $x; // Выведет 7
print_r($GLOBALS); // Выводит все глобальные переменные
?>
При выводе $x в первый раз мы получили 5, поскольку внутри функции myFunc1() мы создали локальную переменную $x, которая ничего общего с глобальной переменной $x не имеет. Таким образом, мы, изменяя значение локальной переменной, никак его не изменили у глобальной.
Во 2-ой функции мы перед использованием $x указали, что внутри данной функции $x должна быть глобальной, то есть мы внутри функции получили доступ к глобальной переменной. В результате, мы изменили её значение, о чём нам echo и сообщил.
И в конце скрипта я вывел ассоциативный массив $GLOBALS, который содержит все глобальные переменные в скрипте. Разумеется, там не только $x, но и масса служебных переменных. И в функции, и за пределами функции Вы всегда можете обратиться к любому элементу в этом массиве и изменить его.
Теперь Вы уже точно знаете, что такое глобальные переменные в PHP и сможете с ними работать, если потребуется.
-
-
Михаил Русаков
Комментарии (5):
У вас ошибка тут "о чём на echo и сообщил."
Ответить
Спасибо, исправил!
Ответить
Всем Доброго времени суток! Проблемка в следующем: - Уже низвел программный код к минимуму, сохранил, как index.php, но ни один браузер (ни Mozilla, ни IE) на моем компьютере не хочет выполнять php код (ни какого текста не видно, белое поле), причем если писать на html, то все отображается корректно. Подскажите, пожалуйста, - какие могут быть упущения с моей стороны?
Ответить
http://myrusakov.ru/php-start.html
Ответить
Глобальные переменные это зло. может стоит рассказать о Registry?
Ответить
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.