PHP Область действия переменных
PHP Область действия (применения) переменных
В PHP переменные можно объявлять в любом месте скрипта.
Область действия переменной - это часть скрипта, где на переменную можно ссылаться/использовать.
В PHP есть три различных области действия переменных:
- local - локальная
- global - глобальная
- static - статическая
Глобальная и локальная область действия
Переменная, объявленная вне функции, имеет ГЛОБАЛЬНУЮ ОБЛАСТЬ ДЕЙСТВИЯ, и к ней можно получить доступ только вне функции:
Пример
Переменная с глобальной областью действия:
<?php
$x = 5; // глобальная область
function myTest() {
// использование x внутри этой функции вызовет ошибку
echo "<p>Переменная x внутри функции: $x</p>";
}
myTest();
echo "<p>Переменная x вне функции: $x</p>";
?>
Попробуйте сами »
Переменная, объявленная внутри функции, имеет ЛОКАЛЬНУЮ ОБЛАСТЬ ДЕЙСТВИЯ, и к ней можно получить доступ только внутри этой функции:
Пример
Переменная с локальной областью действия:
<?php
function myTest() {
$x = 5; // локальная область
echo "<p>Переменная x внутри функции: $x</p>";
}
myTest();
// использование x вне функции вызовет ошибку
echo "<p>Переменная x вне функции: $x</p>";
?>
Попробуйте сами »
У вас могут быть локальные переменные с одинаковыми именами в разных функциях, потому что локальные переменные распознаются только той функцией, в которой они объявлены.
PHP Ключевое слово global
Ключевое слово global
используется для доступа к глобальной переменной из функции.
Для этого используйте ключевое слово global
перед переменными (внутри функции):
Пример
<?php
$x = 5;
$y = 10;
function myTest()
{
global $x, $y;
$y = $x + $y;
}
myTest();
echo $y; // выведет 15
?>
Попробуйте сами »
PHP также хранит все глобальные переменные в массиве с именем $GLOBALS[index]
.
Массив index
содержит имя переменной. Этот массив также доступен из функций и может использоваться для непосредственного обновления глобальных переменных.
Пример выше можно переписать так:
Пример
<?php
$x = 5;
$y = 10;
function myTest()
{
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y; // выведет 15
?>
Попробуйте сами »
PHP Ключевое слово static
Обычно, когда функция завершается / выполняется, все её переменные удаляются. Однако иногда необходимо, чтобы локальная переменная НЕ удалялась. Это необходимо для дальнейшей работы.
Для этого используйте ключевое слово static
при первом объявлении переменной:
Пример
<?php
function myTest()
{
static $x = 0;
echo $x;
$x++;
}
myTest();
myTest();
myTest();
?>
Попробуйте сами »
Затем, каждый раз, когда функция вызывается, эта переменная по-прежнему будет содержать информацию, содержащуюся с момента последнего вызова функции.
Примечание: Переменная по-прежнему является локальной для функции.