Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Problem z zasięgiem zmiennej w funkcji opartej o array_walk
piotr_piotr
post 22.06.2012, 11:33:39
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 22.06.2012

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


Witam, moim celem było stworzenie kilku prostych funkcji operujących na wielowymiarowej tablicy, która ma stanowić strukturę treści strony www:

  1. $Menu = array ( //Przykładowa tablica stanowiąca Menu
  2.  
  3. "Strona główna",
  4. "Oferta" => array("Kuchnia" => array("Meble" => array("Stoły","Krzesła"),"Zabudowy"),"Łazienka"),
  5. "Kontakt"
  6. );


Funkcję odpowiedzialną za wyświetlenie zagnieżdzonej listy HTML już zrobiłem, teraz chciałem zrobić funkcję, która dla podanego argumentu (np. "Krzesła") wyświetli rodziców (czyli docelowo wartości: Oferta i Meble). Stworzyłem coś co działa:

  1. $parents_of = "Krzesła";
  2.  
  3. function Wyswietl_Rodzicow ($Menu) {
  4.  
  5. function funkcja_pomocnicza($key,$val,$rodzice=false) {
  6.  
  7. global $parents_of;
  8.  
  9. if(is_array($key)):
  10.  
  11. if($val == $parents_of): echo $rodzice; endif;
  12. $rodzice .= "/".$val;
  13.  
  14. array_walk($key,funkcja_pomocnicza,$rodzice);
  15.  
  16. else:
  17.  
  18. if($key == $parents_of): echo $rodzice; endif;
  19.  
  20. endif;
  21.  
  22. }
  23.  
  24. array_walk($Menu,funkcja_pomocnicza);
  25.  
  26. }


I teraz mój problem: zmienna $parents_of traci zasięg gdy przesunę ją jako drugi argument funkcji Wyswietl_Rodzicow(). Chciałbym po prostu móc wywoływać tę funkcję w sposób Wyswietl_Rodzicow($Menu,$parents_of). Czemu tak się dzieje?
Go to the top of the page
+Quote Post

Posty w temacie


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 Wersja Lo-Fi Aktualny czas: 17.06.2025 - 11:16