(PHP 4, PHP 5, PHP 7, PHP 8)
compact — Создаёт массив, содержащий названия переменных и их значения
Создаёт массив, содержащий переменные и их значения.
Для каждого переданного аргумента функция compact() ищет в текущей таблице символов переменную с таким же именем и добавляет её в выводимый массив так, что имя переменной становится ключом, а значение переменной становится значением этого ключа. Короче, она выполняет операцию, противоположную функции extract().
Замечание:
До PHP 7.3 строки, для которых не были найдены переменные, будут пропущены без генерации ошибки.
var_name
var_names
Функция compact() принимает неограниченное количество аргументов. Любой из аргументов может быть либо строкой, содержащей название переменной, либо массивом названий переменных. Массив может содержать вложенные массивы названий переменных; функция compact() обрабатывает их рекурсивно.
Возвращает массив с добавленными переменными.
Функция compact() выдаёт ошибку уровня E_WARNING
, если полученная строка ссылается на неопределённую переменную.
Версия | Описание |
---|---|
8.0.0 | Если заданная строка ссылается на неопределённую переменную, теперь будет сгенерированна ошибка уровня E_WARNING . |
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().