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
Exempel på användning av compact()
Följande exempel illustrerar olika sätt att använda compact()-funktionen i PHP.
Exempel #1 Grundläggande användning av Compact
<?php $name = "John Doe"; $age = 30; $location = "Stockholm"; $info = compact("name", "age", "location"); print_r($info); ?>
Ovanstående exempel kommer att skriva ut:
Array ( [name] => John Doe [age] => 30 [location] => Stockholm )
Exempel #2 Compact med array av variabelnamn
<?php $firstName = "Anna"; $lastName = "Andersson"; $city = "Göteborg"; // Skapa en array med variabelnamn $vars = array("firstName", "lastName", "city"); $result = compact($vars); print_r($result); ?>
Detta exempel visar hur man skapar en array som innehåller flera variabler genom att ange en array av variabelnamn.
Exempel #3 Kombinera strängar och arrayer
<?php $company = "My Company"; $industry = "Tech"; $country = "Sweden"; $employees = 100; // Använd både strängar och arrayer i compact $data = compact("company", array("industry", "country", "employees")); print_r($data); ?>
Detta exempel kombinerar både direkta strängar och en array för att forma utdatan.
Exempel #4 Använda Compact för att förbereda data för funktioner
<?php $user = "Alice"; $id = 25; // Skapa en konfigurationsarray för en funktion $config = compact("user", "id"); function setupUser($config) { echo "Setting up user: " . $config['user'] . " with ID: " . $config['id']; } setupUser($config); ?>
I detta exempel används `compact()` för att enkelt passa flera variabler till en funktion.
Exempel #5 Undvik att använda odefinierade variabler
<?php $product = "Book"; $price = 19.99; // Försök att använda en odefinierad variabel $quantity = 10; $cart = compact("product", "price", "quantity", "undefinedVar"); print_r($cart); ?>
Detta visar hur `compact()` hanterar försöket att inkludera en odefinierad variabel, vilket ger ett E_WARNING om PHP-versionen är 8.0.0 eller senare.