(PHP 4, PHP 5, PHP 7, PHP 8)
compact — Создаёт массив, содержащий названия переменных и их значения
$var_name
, array|string ...$var_names
): arrayСоздаёт массив, содержащий переменные и их значения.
Для каждого из переданного параметров, функция compact() ищет переменную с указанным именем в текущей таблице символов и добавляет их в выводимый массив так, что имя переменной становится ключом, а содержимое переменной становится значением этого ключа. Короче говоря, она противоположна функции extract().
Замечание:
До PHP 7.3 любые неустановленные строки будут просто пропущены.
var_name
var_names
compact() принимает неограниченное количество параметров. Любой из параметров может быть либо строкой, содержащей название переменной, либо массивом названий переменных. Массив может содержать вложенные массивы названий переменных; функция compact() обрабатывает их рекурсивно.
Возвращает массив со всеми переменными, добавленными в него.
compact() выдаёт ошибку уровня E_NOTICE, если данная строка относится к удалённой переменной.
Версия | Описание |
---|---|
7.3.0 | compact() теперь выдаёт ошибку уровня E_NOTICE, если заданная строка связана с удалённой переменной. Ранее такие строки пропускались без всякого уведомления. |
Пример #1 Пример использования compact()
<?php
$city = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state");
$result = compact("event", $location_vars);
print_r($result);
?>
Результат выполнения данного примера:
Array ( [event] => SIGGRAPH [city] => San Francisco [state] => CA )
Замечание: Замечания по работе функции compact
Так как переменные переменных не могут быть использованы с суперглобальными массивами внутри функций, суперглобальные массивы не могут быть переданы в compact().