Перейти к содержимому

get_defined_vars()

Введение

Функция get_defined_vars() — это встроенная функция PHP, которая возвращает ассоциативный массив, содержащий все определённые переменные в текущей области видимости, включая переменные, определённые самой PHP, и переменные, определённые пользователем.

Синтаксис

Синтаксис функции get_defined_vars() выглядит следующим образом:

Синтаксис PHP функции get_defined_vars()

php
array get_defined_vars(void)

Функция не принимает параметров. Она возвращает ассоциативный массив, где ключами являются имена переменных, а значениями — их значения.

Пример использования

Ниже приведён пример использования функции get_defined_vars() в PHP:

Пример использования get_defined_vars() в PHP

php
<?php
$var1 = "hello";
$var2 = 42;
function testFunction() {
  $var3 = true;
  $all_vars = get_defined_vars();
  print_r($all_vars);
}
testFunction();
?>

В этом примере мы определяем две глобальные переменные $var1 и $var2, а также одну локальную переменную $var3 внутри testFunction(). При вызове get_defined_vars() внутри функции она возвращает только локальные переменные и суперглобальные переменные PHP, но не глобальные $var1 и $var2. Вывод показывает ассоциативный массив, содержащий переменные текущей области видимости:

text
Array
(
    [var3] => 1
    [GLOBALS] => Array
        (
            ...
        )
    [$_SERVER] => Array
        (
            ...
        )
    [$_GET] => Array
        (
            ...
        )
    [$_POST] => Array
        (
            ...
        )
    [$_FILES] => Array
        (
            ...
        )
    [$_COOKIE] => Array
        (
            ...
        )
    [$_SESSION] => Array
        (
            ...
        )
)

Примечание: Эта функция доступна начиная с PHP 4.0.5. Она всегда включает суперглобальные переменные PHP в возвращаемый массив, независимо от текущей области видимости.

Заключение

Функция get_defined_vars() — это полезный инструмент для проверки всех определённых переменных в текущей области видимости скрипта PHP. Её можно использовать для отладки, чтобы проверить, определена ли определённая переменная, или убедиться, что все необходимые переменные определены перед выполнением блока кода. Используя эту функцию, разработчики могут быстро проверить текущее состояние переменных и отладить проблемы, связанные с областью видимости, без необходимости вручную проверять каждую из них.

Практика

Что делает функция PHP get_defined_vars()?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.