extract

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

extract --  Importuj zmienne do bieżącej tablicy 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 tablicy 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 tablicy symboli będzie stworzona zmienna, zależna od parametrów typ_ekstrakcji i prefiks.

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

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

Notatka: Stała EXTR_REFS została dodana w PHP 4.3.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 ekstrahuj 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.

EXTR_REFS

Ekstraktuje zmienne jako referencje. Oznacza to, że wartości zaimportowanych zmiennych ciągle odnoszą się do wartości parametru tablica_zmiennych. Flaga ta może być użyta sama lub w połączaniu z innymi flagami poprzez użycie operacji OR na parametrze typ_ekstrakcji. Została ona dodana w PHP 4.3.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.

Ostrzeżenie

Nie należy używać funkcji extract() na niepewnych danych, jak na przykład danych odebranych od użytkownika ($_GET, ...). Można tak zrobić na przykład w celu tymczasowego uruchomienia starych skryptów, które zależne są od ustawienia register_globals. Należy jednak użyć nie nadpisującego parametru typ_ekstrakcji, jak na przykład EXTR_SKIP. Trzeba też pamiętać aby ekstrahować zmienne $_SERVER, $_SESSION, $_COOKIE, $_POST $_GET w tej właśnie kolejności.

Możliwa jest ekstrakcja 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");

echo
"$kolor, $rozmiar, $ksztalt, $wddx_rozmiar\n";

?>
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().



Język PHP to dzisiaj powszechnie przyjęty standard, podstawa tworzenia dynamicznych stron WWW, opartych na bazach danych.

PHP to język skryptowy. Znaczy to, że jest to język nie kompilowalny. Program jest wykonywany przez interpreter na podstawie jego kodu źródłowego. Język PHP to element technologii internetowej SERVER-SIDE. Znaczy to, że kod języka jest wykonywany od strony serwera (na serwerze).

W jakim celu używac PHP? Po co to komu?

Załóżmy, że potrzebujemy takiej strony internetowej, która wyświetli zawsze bieżącą datę. Dzięki technologii PHP, datę i godzinę odczytywać można z miejsca gdzie wykonuje się skrypt, np. gdy serwer znajduje się w USA a my w Polsce to widoczna jest różnica w czasie który zostanie wyświetlony.

excel szkolenia tran przedawkowanie fotelik samochodowy chicco Schools in USA Książka Superterroryzm chemiczny, Yonah Alexanderwizy do rosji gdańsk, usuwanie zmarszczek, wizy do rosji gdańsk, kaszuby domki, wizy do rosji gdańsk, HTC Touch HD, Apple iPhone 3g, hotele gdańsk, Profiss, sms, odżywki na rzeźbe, peeling kawitacyjny z sonofazą