extract

extract -- Importuj zmienne do bieżącej tabeli symboli z tablicy

Opis

int extract ( array tablica_zmiennych [, int typ_ekstrakcji [, string prefiks]])

Ta funkcja służy do importowania zmiennych z tablicy do bieżącej tabeli symboli . Pobiera jako parametr tablicę asocjacyjną tablica_zmiennych i traktuje klucze jako nazwy zmiennych a wartości jako wartości tych zmiennych . Dla każdej pary klucz / wartość w bieżącej tabeli symboli będzie stworzona zmienna , zależna od parametrów typ_ekstrakcji i prefiks .

Notatka : Od wersji 4.0.5 ta funkcja zwraca liczbę wyekstraktowanych zmiennych .

Notatka : Stałe EXTR_IF_EXISTS i EXTR_PREFIX_IF_EXISTS zostały dodane w PHP 4.2.0 .

extract( ) sprawdza każdy klucz aby sprawdzić , czy zawiera prawidłową nazwę zmiennej a także czy istnieją kolizje z zmiennymi istniejącymi w tablicy symboli . Sposób traktowania złych nazw zmiennych i kolizji jest określony przez parametr typ_ekstrakcji . Może być jedną z poniższych wartości :

EXTR_OVERWRITE

Jeśli istnieje kolizja , nadpisz istniejącą zmienną .

EXTR_SKIP

Jeśli istnieje kolizja , nie nadpisuj istniejącej zmiennej .

EXTR_PREFIX_SAME

Jeśli istnieje kolizja , na początek nazwy zmiennej wstaw prefiks .

EXTR_PREFIX_ALL

Na początek każdej nazwy zmiennej wstaw prefiks . Od PHP 4.0.5 dotyczy to także nazw numerycznych .

EXTR_PREFIX_INVALID

Wstaw prefiks na początek złych / numerycznych nazw . Ta flaga została dodana w PHP 4.0.5 .

EXTR_IF_EXISTS

Nadpisz tylko zmienną już istniejącą w bieżącej tablicy symboli . Jest to przydatne do definiowania listy poprawnych zmiennych i ekstraktuj tylko te zmienne które zdefiniowano na przykład w $_REQUEST . Flaga ta została dodana w PHP 4.2.0 .

EXTR_PREFIX_IF_EXISTS

Przedrostek zostanie dodany tylko do zmiennych których odpowiedniki bez przedrostka już istnieją w bieżącej tablicy symboli . Flaga ta została dodana w PHP 4.2.0 .



Jeśli typ_ekstrakcji nie został podany , to zakładana jest opcja EXTR_OVERWRITE .

Zauważ , że parametr prefiks jest wymagany tylko jeśli typ_ekstrakcji to EXTR_PREFIX_SAME , EXTR_PREFIX_ALL , EXTR_PREFIX_INVALID lub EXTR_PREFIX_IF_EXISTS . Jeśli nazwa zmiennej po dodaniu prefiksu nie jest prawidłową nazwą zmiennej , nie jest importowana do tablicy symboli .

extract( ) zwraca liczbę zmiennych szczęśliwie zaimportowanych do tablicy symboli .

Możliwy jest import zmiennych zawartych w tablicy asocjacyjnej zwróconej przez wddx_deserialize( ) .

Przykład 1 . Przykład użycia extract( )

 
?php

 
/

 
*

 
Załóżmy

 
,

 
że

 
$tablica_zmiennych

 
jest

 
tablicą

 
zwróconą

 
przez

 
wddx_deserialize

 
*

 
/

 
$rozmiar

 
=

 
"

 
duży"

 
;

 
$tablica_zmiennych

 
=

 
array

 
("kolor

 
"

 
=

 
"niebieski"

 
,

 
"rozmiar

 
"

 
=

 
"średni"

 
,

 
"ksztalt

 
"

 
=

 
"kulisty")

 
;

 
extract

 
($tablica_zmiennych

 
,

 
EXTR_PREFIX_SAME

 
,

 
"wddx")

 
;

 
print

 
"$kolor

 
,

 
$rozmiar

 
,

 
$ksztalt

 
,

 
$wddx_rozmiar\n"

 
;

 

?





Powyższy przykład wyświetli :

 
niebieski

 
,

 
duży

 
,

 
kulisty

 
,

 
średni





$rozmiar nie został nadpisany , ponieważ podany został parametr EXTR_PREFIX_SAME , przez co stworzona został zmienna $wddx_rozmiar . Jeśli podana by była flaga EXTR_SKIP , to zmienna $wddx_rozmiar nie zostałaby stworzona . Flaga EXTR_OVERWRITE spowodowałaby , że zmienna $rozmiar miałaby wartość " średni " , a EXTR_PREFIX_ALL spowodowałaby że wszystkie nowe zmienne zostałyby nazwane $wddx_kolor , $wddx_rozmiar , and $wddx_ksztalt .

Musisz użyć tablic asocjacyjnych . Tablica indeksowana liczbowo nie da żadnych efektów , chyba że zostanie użyta flaga EXTR_PREFIX_ALL lub EXTR_PREFIX_INVALID .

Patrz także : compact( ) .