Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Funkcja extract().
Forum PHP.pl > Forum > Przedszkole
Mat123
Mam przykładowy skrypt:

  1. <?php
  2. $tablica=array('klucz1'=>'wartosc1',,'klucz2'=>'wartosc2','klucz3'=>'wartosc3');
  3. extract($tablica);
  4. echo"klucz1 $klucz2 $klucz3";
  5. ?>


Nie rozumiem teraz dlaczego rezultat jego wykonania jest taki: wartosc4 wartosc2 wartosc3.
Wg mnie powinien być taki: wartosc1 wartosc2 wartosc3.
Crozin
Ale kiedy właśnie taki jest rezultat: http://ideone.com/23R69W
freemp3
U mnie wynikiem był błąd:
Kod
Parse error: syntax error, unexpected ',', expecting ')' in

Po jego poprawieniy wynik był taki:
Kod
klucz1 wartosc2 wartosc3

Po poprawieniu zmiennej wynik był taki:
Kod
wartosc1 wartosc2 wartosc3

Jak widać kod działa. Podaj faktyczny kod, który powoduje problem, a nie taki pisany na szybko.
Mat123
Na początku przepraszam, faktycznie pomyliłem się i zły skrypt wstawiłem ten jest właściwy:

  1. <?php
  2. $tablica=array('klucz1'=>'wartosc1','klucz2'=>'wartosc2','klucz3'=>'wartosc3','klucz1'=>'wartosc4');
  3. extract($tablica,EXTR_SKIP);
  4. echo"$klucz1 $klucz2 $klucz3";
  5. ?>


Cytat(Crozin @ 28.08.2013, 13:16:21 ) *
Ale kiedy właśnie taki jest rezultat: http://ideone.com/23R69W


Tak wiem o tym tyle ze postanowiłem sprawdzić jak działają poszczególne typy ekstrakcji i przy EXTR_SKIP myślałem że funkcja ominie 'klucz1'=>'wartosc4'
a tego nie robi działa tak jakby domyślnie był EXTR_OVERWRITE.
Crozin
Tablice asocjacyjne wbudowane w PHP nie mogą posiadać dwóch takich samych kluczy. Twoja tablica po prostu zawiera trzy elementy:
  1. <?php
  2.  
  3. $tablica=array('klucz1'=>'wartosc1','klucz2'=>'wartosc2','klucz3'=>'wartosc3','klucz1'=>'wartosc4');
  4.  
  5. print_r($tablica);
Kod
Array
(
    [klucz1] => wartosc4
    [klucz2] => wartosc2
    [klucz3] => wartosc3
)
Funkcja extract nie ma tu absolutnie nic do rzeczy.
Mat123
Cytat(Crozin @ 28.08.2013, 14:13:04 ) *
Tablice asocjacyjne wbudowane w PHP nie mogą posiadać dwóch takich samych kluczy. Twoja tablica po prostu zawiera trzy elementy:
  1. <?php
  2.  
  3. $tablica=array('klucz1'=>'wartosc1','klucz2'=>'wartosc2','klucz3'=>'wartosc3','klucz1'=>'wartosc4');
  4.  
  5. print_r($tablica);
Kod
Array
(
    [klucz1] => wartosc4
    [klucz2] => wartosc2
    [klucz3] => wartosc3
)
Funkcja extract nie ma tu absolutnie nic do rzeczy.


Teraz rozumiem nie wiedziałem o tym, Bardzo dziękuje za pomoc snitch.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.