extract Importa le variabili nella tabella dei simboli Descrizione intextract arrayvar_array intextract_type stringprefix 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. Dalla versione 4.0.5 questa funzione restituisce il numero di variabili estratte. EXTR_IF_EXISTS e EXTR_PREFIX_IF_EXISTS sono stati introdotti nella versione 4.2.0. EXTR_REFS è stata introdotta nella versione 4.3.0. 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 parametro prefix. Questa opzione è stata aggiunta in PHP 4.0.5. EXTR_IF_EXISTS Sovrascrive la variabile solo se già esiste nella tabella dei simboli, altrimenti non fa nulla. Questo è utile per definire una lista di variabili valide e quindi estrarre solo quelle variabili definite in $_REQUEST, per esempio. Questa opzione è stata aggiunta in PHP 4.2.0. EXTR_PREFIX_IF_EXISTS Crea nomi di variabili con il prefisso solo se la versione senza prefisso della stessa variable esiste nella tabella dei simboli. Questa opzione è stata aggiunta in PHP 4.2.0. EXTR_REFS Estrae le variabili come riferimenti. Questo in effetti significa che i valori delle variabili importate referenziano i valori del parametro var_array. Si può usare questo flag da solo o combinarlo con gli altri mediante un OR nel parametro extract_type. Questo flag è stato aggiunto nel PHP 4.3.0. 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, EXTR_PREFIX_INVALID o EXTR_PREFIX_IF_EXISTS. 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 di<function>extract</function> "blu", "dimensione" => "media", "forma" => "sfera"); extract ($array_variabili, EXTR_PREFIX_SAME, "wddx"); print "$colore, $dimensione, $forma, $wddx_dimensione\n"; ?> ]]> Questo esempio mostrerà;: 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 a meno di non usare EXTR_PREFIX_ALL o EXTR_PREFIX_INVALID. Vedere anche compact.