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

Глобальные переменные позволяют вам пересекать границы между функциями, чтобы обращаться к значениям переменных. Ключевое слово global указывает, что данная переменная будет той же самой переменной повсюду в программе, то есть глобальной переменной. Изменение глобальной переменной внутри функции можно наблюдать за ее пределами. Не существует никаких ограничений на количество глобальных переменных, которые могут обрабатываться функцией:

<?php

  // присвоим переменной age значение 30
  $age = 30;

  // определяем функцию
  function birth() {
    // определить переменную как глобальную
    global $age;
	 
    // увеличиваем значение переменной age на 1
    $age = $age + 1;
  }
  // вызываем функцию
  birth();

  //выводим значение переменной age
  echo $age;
  
?>

В результате исполнения этого кода будет выведено: 31.

Глобальные переменные следует использовать в редких случаях, поскольку легко изменить значение переменной по ошибке, не предусмотрев последствий. Ошибки такого типа бывает очень сложно обнаружить. Кроме того, когда мы будем изучать функции подробнее, вы узнаете, что есть и другой способ передачи значений в функции и получения результатов их работы. Все это означает, что в действительности вы не должны использовать глобальные переменные.

Есть еще второй способ доступа к переменным глобальной области видимости - использование специального, определяемого PHP массива $GLOBALS:

<?php

  $a = 1;
  $b = 2;

  function Sum() {
    $GLOBALS['b'] = $GLOBALS['a'] + $GLOBALS['b'];
  } 

  Sum();
  echo $b;

?>

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

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

Копирование материалов с данного сайта возможно только с разрешения администрации сайта
и при указании прямой активной ссылки на источник.
2011 – 2024 © puzzleweb.ru | razumnikum.ru

Реклама на сайте | puzinfo@puzzleweb.ru | ruen