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