Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Funkcja extract()., Typ ekstrakcji EXTR_SKIP.
Mat123
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Ale kiedy właśnie taki jest rezultat: http://ideone.com/23R69W
Go to the top of the page
+Quote Post
freemp3
post
Post #3





Grupa: Zarejestrowani
Postów: 467
Pomógł: 77
Dołączył: 6.09.2008
Skąd: Miechów / Kraków

Ostrzeżenie: (0%)
-----


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.

Ten post edytował freemp3 28.08.2013, 12:19:35


--------------------
Niemożliwym jest stworzenie czegokolwiek idiotoodpornego, ponieważ idioci są wyjątkowo pomysłowi.

https://www.aroch.pl
https://themeforest.net/user/aroch
https://www.astroblog.aroch.pl
https://www.4geeks.pl
Go to the top of the page
+Quote Post
Mat123
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Crozin
post
Post #5





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Mat123
post
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 28.08.2013

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 20:36