Compact()
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