extractImporta le variabili nella tabella dei simboli corrente da un array
&reftitle.description;
intextractarrayarrayintflagsEXTR_OVERWRITEstringprefix""
Importa le variabili nella tabella dei simboli corrente da un array.
Controlla ogni chiave per vedere se ha un nome di variabile valido.
Controlla anche le collisioni con le variabili esistenti nella
tabella dei simboli.
Non usare extract su dati non attendibili, come l'input dell'utente
(per esempio $_GET, $_FILES).
&reftitle.parameters;
array
Un array associativo. Questa funzione tratta le chiavi come nomi di variabili e
i valori come valori di variabili. Per ogni coppia chiave/valore verrà creata una
variabile nella tabella dei simboli corrente, soggetta ai
parametri flags e prefix.
È necessario utilizzare un array associativo; un array indicizzato numericamente
non produrrà risultati a meno che non si utilizzi EXTR_PREFIX_ALL o
EXTR_PREFIX_INVALID.
flags
Il modo in cui vengono trattate le chiavi non valide/numeriche e le collisioni è determinato
dai flag di estrazione. Può essere uno dei
seguenti valori:
EXTR_OVERWRITE
In caso di collisione, sovrascrivi la variabile esistente.
EXTR_SKIP
In caso di collisione, non sovrascrivere la variabile
esistente.
EXTR_PREFIX_SAMEIn caso di collisione, anteporre al nome della variabile il prefisso
prefix.
EXTR_PREFIX_ALL
Prefissa tutti i nomi delle variabili con
prefix.
EXTR_PREFIX_INVALID
Aggiunge il prefisso prefix solo ai nomi di variabili
non valide/numeriche.
EXTR_IF_EXISTS
Sovrascrive la variabile solo se esiste già nella
tabella dei simboli corrente, altrimenti non fa nulla. Questo è utile
per definire un elenco di variabili valide e quindi estrarre
solo quelle variabili che sono state definite in
$_REQUEST, per esempio.
EXTR_PREFIX_IF_EXISTS
Crea nomi di variabili con prefisso solo se la versione senza prefisso
della stessa variabile esiste nella tabella dei simboli corrente.
EXTR_REFS
Estrae le variabili come riferimenti. Ciò significa effettivamente che i
valori delle variabili importate fanno ancora riferimento ai valori del
parametro array. Si può usare questo flag
da solo o combinarlo con qualsiasi altro flag utilizzando l'OR dei
flags.
Se flags non è specificato, si
presume che sia EXTR_OVERWRITE.
prefix
Notare che prefix è richiesto solo se
flags è EXTR_PREFIX_SAME,
EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID
o EXTR_PREFIX_IF_EXISTS. Se
il risultato con prefisso non è un nome di variabile valido, non viene
importato nella tabella dei simboli. I prefissi vengono separati automaticamente dalla
chiave dell'array da un carattere underscore.
&reftitle.returnvalues;
Restituisce il numero di variabili importate con successo nella tabella dei
simboli.
&reftitle.examples;
Esempio di extract
Un possibile utilizzo di extract è importare nella
tabella dei simboli le variabili contenute in un array associativo restituito da
wddx_deserialize.
"blu",
"size" => "media",
"shape" => "sfera");
extract($array_variabili, EXTR_PREFIX_SAME, "wddx");
echo "$color, $size, $shape, $wddx_size\n";
?>
]]>
&example.outputs;
$size non è stato sovrascritto perché abbiamo specificato
EXTR_PREFIX_SAME, che ha portato alla
creazione di $wddx_size. Se fosse stato specificato
EXTR_SKIP, allora $wddx_size non sarebbe nemmeno stato creato.
EXTR_OVERWRITE avrebbe fatto sì che $size avesse
il valore "medio" e EXTR_PREFIX_ALL avrebbe comportato nuove variabili
con nomi $wddx_color,
$wddx_size e
$wddx_shape.
&reftitle.notes;
Non utilizzare extract su dati non attendibili, come
l'input dell'utente
(per esempio $_GET, $_FILES, ecc.).
In tal caso, assicurarsi di utilizzare uno dei valori di flags
che non sovrascrivono come
EXTR_SKIP e tenere presente che si dovrebbe estrarre
nello stesso ordine definito in
variables_order all'interno del
&php.ini;.
&reftitle.seealso;
compactlist