compact

(PHP 4, PHP 5, PHP 7, PHP 8)

compactСтворює масив, який містить назви змінних та їхні значення

Опис

compact(array|string $var_name, array|string ...$var_names): array

Створює масив, який містить назви змінних та їх значення.

Для кожного з переданих параметрів функція 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
= "Сан-Франциско";
$state = "CA";
$event = "SIGGRAPH";

$location_vars = array("city", "state");

$result = compact("event", $location_vars);
print_r($result);

?>

Поданий вище приклад виведе:

Array
(
    [event] => SIGGRAPH
    [city] => Сан-Франциско
    [state] => CA
)

Примітки

Зауваження: Gotcha

Оскільки змінні змінних не можуть бути використані разом з суперглобальним масивом language.variables.superglobals.html в межах функцій, суперглобальні масиви не можуть бути передані в compact().

Прогляньте також

  • extract() - Import variables into the current symbol table from an array