Compact()

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

compact

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

compact — Skapa en array som innehåller variabler och deras värden

Beskrivning

compact(array|string $var_name, array|string ...$var_names): array Skapar en array som innehåller variabler och deras värden.

För var och en av dessa letar compact() efter en variabel med det namnet i den aktuella symboltabellen och lägger till den i utdataarrayen så att variabelnamnet blir nyckeln och innehållet i variabeln blir värdet för den nyckeln. Kort sagt, den gör motsatsen till extract().

Notera:

Före PHP 7.3 kommer strängar som inte är inställda att tyst ignoreras.

Parametrar

var_name
var_names
compact() tar ett varierande antal parametrar. Varje parameter kan vara antingen en sträng som innehåller namnet på variabeln, eller en array av variabelnamn. Arrayen kan innehålla andra arrayer av variabelnamn inuti den; compact() hanterar det rekursivt.

Returvärden

Returnerar utdataarrayen med alla tillagda variabler.

Fel/Undantag

compact() utfärdar ett E_WARNING-nivå fel om en given sträng refererar till en odefinierad variabel.

Ändringslogg

Version Beskrivning
8.0.0 Om en given sträng refererar till en odefinierad variabel, utfärdas nu ett E_WARNING-nivå fel.
7.3.0 compact() utfärdar nu ett E_NOTICE-nivå fel om en given sträng refererar till en odefinierad variabel. Tidigare har sådana strängar tyst ignorerats.

Exempel

Exempel #1 compact()-exempel

<?php
$city  = "San Francisco";
$state = "CA";
$event = "SIGGRAPH";

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

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

Ovanstående exempel kommer att skriva ut:

Array
(
    [event] => SIGGRAPH
    [city] => San Francisco
    [state] => CA
)

Noter

Notera: Gotcha Eftersom variabla variabler inte kan användas med PHP:s Superglobala arrayer inom funktioner, kan de Superglobala arrayerna inte passeras till compact().

Se även

extract()
Importerar variabler till den aktuella symboltabellen från en array