В JavaScript глобальные переменные имеют огромное значение, и они постоянно используются при написании скриптов. В PHP глобальные переменные - редко замечаемое явление, особенно если Вы используете ООП , однако, знать о них стоит. Если Вы вдруг не знаете про глобальные переменные в PHP , то эта статья заполнит этот...

Глобальные переменные в PHP

В 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 и сможете с ними работать, если потребуется.