extract

(PHP 3>= 3.0.7, PHP 4 >= 4.0.0)

extract --  Importa le variabili nella tabella dei simboli

Descrizione

int extract (array var_array [, int extract_type [, string prefix]])

Questa funzione viene usata per importare delle variabili da un array nella tabella dei simbloi corrente. Riceve un array associativo var_array e interpreta le chiavi come nomi di variabile e i valori come valori di variabile. Per ogni coppia chiave/valore verrà creata una variabile nella tabella dei simboli corrente, coerentemente con i parametri extract_type e prefix.

Nota: Since version 4.0.5 this function returns the number of variables extracted.

extract() controlla ogni chiave per stabilire se costituisce un nome valido di variabile e se ci sono collisioni con variabili già esistenti nella tabella dei simboli. Il modo in cui vengono trattate le chiavi invalide/numeriche e le collisioni è determinato da extract_type. Può essere uno dei seguenti valori:

EXTR_OVERWRITE

Se avviene una collisione, sovrascrive la variabile esistente.

EXTR_SKIP

Se avviene una collisione, non sovrascrive la variabile esistente.

EXTR_PREFIX_SAME

Se avviene una collisione, mette come prefisso al nome della variabile il parametro prefix.

EXTR_PREFIX_ALL

Mette come prefisso di tutte le variabili il parametro prefix. Dal PHP 4.0.5 questo avviene anche per i valori numerici.

EXTR_PREFIX_INVALID

Mette come prefisso, solo per i nomi di variabili invalidi/numerici, il paramentro prefix. Questa opzione è stata aggiunta in PHP 4.0.5.

Se extract_type non è specificato, si assume che sia EXTR_OVERWRITE.

Si noti che prefix è richiesto solo se extract_type è EXTR_PREFIX_SAME, EXTR_PREFIX_ALL, o EXTR_PREFIX_INVALID. Se il risultato non è un nome di variabile valido, non viene importato nella tabella dei simboli.

extract() restituisce il numero di variabili importate con successo nella tabella dei simboli.

Un possibile uso di extract() è quello di importare nella tabella dei simboli variabili contenute in un array associativo restituito da wddx_deserialize().

Esempio 1. esempio diextract()


<?php

/* Si supponga che $array_variabili sia un array restituito da
   wddx_deserialize */

$dimensione = "grande";
$array_variabili = array ("colore" => "blu",
                    "dimensione"  => "media",
                    "forma" => "sfera");
extract ($array_variabili, EXTR_PREFIX_SAME, "wddx");

print "$colore, $dimensione, $forma, $wddx_dimensione\n";

?>
      

Questo esempio mostrerà:

blu, grande, sfera, media
     

La variabile $dimensione non è stata sovrascritta, in quanto è specificato EXTR_PREFIX_SAME, che ha portato alla creazione di $wddx_dimensione. Se fosse stato specificato EXTR_SKIP, $wddx_dimensione non sarebbe stata creata. EXTR_OVERWRITE avrebbe portato $dimensione ad assumere il valore "medio", e EXTR_PREFIX_ALL avrebbe fatto creare nuove variabili chiamate $wddx_colore, $wddx_dimensione, e $wddx_forma.

Si deve usare un array associativo, un array indicizzato numericamente non produce risultati.

Vedere anche: compact().