extract - Český PHP manuál
Rozbalí proměnné z pole do současného scope. Jako názvy proměnných jsou použity klíče v poli, funkce bere v úvahu validní jména pro promenné a také, zda proměnná již existuje.
Parametry
Pole. Druhý, nepovinný parametr může nabývat následujících hodnot:
- EXTR_OVERWRITE - Přepíše existující proměnné.
- EXTR_SKIP - Nepřepíše existující proměnné.
- EXTR_PREFIX_SAME - Předsadí jméno proměnné prefixem v případě, že již existuje.
- EXTR_PREFIX_ALL - Předsadí vždy všechny názvy proměnných prefixem.
- EXTR_PREFIX_INVALID - Předsadí pouze nevalidní názvy proměnných (např číselné).
- EXTR_IF_EXISTS - Přepíše proměnnou pouze pokud existuje, v ostatních případech nebude proměnná založena. Založením povolených proměnných lze ošetřit vybalení toho správného např. z POSTu.
- EXTR_PREFIX_IF_EXISTS - Předsadí názvy proměnných prefixem v případě, že již existuje. Ty neexistující nebudou vybaleny.
- EXTR_REFS - Vybalí proměnné jako reference na původní prvky pole. Tento flag lze kombinovat s ostatními.
Pokud není flag uveden, je použita výchozí hodnota EXTR_OVERWRITE.
Třetí, nepovinný parametr je prefix názvu proměnné. Je vyžadován pouze u flagů: EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID or EXTR_PREFIX_IF_EXISTS. Za prefix je automaticky přídáno podtržítko "_".
Návratová hodnota
Počet úspěšně vybalených proměnných.
Příklad
<?php $pole = array('a' => 1, 'b' => '2', 'c' => 3.0); extract($pole); echo $a;
Výstup:
1
Funkci extract lze velmi dobře použít při tvorbě šablon s použitím vlastních struktur PHP.
Jedná se o potenciálně nebezpečnou funkci, měli bychom myslet na to, jaká data se do vybalovaného pole mohou dostat a jestli je uživatel schopen do tohoto pole zasahovat.