Loading:


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

    Importuje zmienne do bieżącej tablicy symboli z tablicy.

    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 .

     

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

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

    Informacja: 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. Prefiksy są automatycznie oddzielane od kluczy tablicy poprzez znak "_".

     

    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 w kolejności określonej przez opcję variables_order pliku php.ini.

     

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

     

    Kompatybilność: PHP4, PHP5.



    Napisz Artyku³

    Listing

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




    Dodano przez: divix
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors