![]() |
![]() ![]() |
![]() |
![]()
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:
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:
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? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat zmienna $parents_of traci zasięg gdy przesunę ją jako drugi argument funkcji Wyswietl_Rodzicow(). Przecież Wyswietl_Rodzicow nie ma argumentu w postaci $parents_of ani na pierwszym miejscu ani na drugim, ani na jakimkolwiek
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 22.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Tak, przedstawiłem działający kod, dlatego zmienna $parents_of jest zadeklarowana w 1. linii. Problem pojawia się, gdy zamiast deklarować ją na sztywno przenoszę ją jako drugi argument funkcji - wtedy funkcja przestaje działać.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
To pokaż błędny kod. No jak mamy ci go poprawić nie widząć co pozmieniałeś.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 22.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Kod nie dający żadnych efektów:
Ten post edytował piotr_piotr 22.06.2012, 12:26:31 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Dobrze:
Zle:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 22.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Rezultat: Missing argument 4 (...) in line 3. Jeśli wywołam funkcję w ten sposób: Wyswietl_Rodziców($Menu,Krzesła) to w linii 3. zmienna $parents_of powinna mieć wartość "Krzesła", a jest pusta, dlaczego? Ten post edytował piotr_piotr 22.06.2012, 12:26:20 |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
array_walk($Menu,funkcja_pomocnicza); - przecież nie przekazujesz do funkcja pomocnicza parametru $parents_of....
analogicznie przy innych wywołaniach I wywal te global $parents_of; przeciez zmienna ma isc z parametru funkcji a nie z global -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 22.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
A w jaki sposób powinienem ją przekazać?
To chyba nie jest poprawna składnia? |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
http://www.php.net/array_walk
Cytat userdata Czyli z parametrów $rodzice=false,$parents_of masz zrobic jeden jako tablica If the optional userdata parameter is supplied, it will be passed as the third parameter to the callback funcname. ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 22.06.2012 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za wskazówki, udało się. Oto aktualny kod:
Próbowałem jeszcze przerobić ją odrobinę, by funkcja jako rezultat zwracała tablicę:
Ale bez skutku. Gdzie znów popełniam błąd? Ten post edytował piotr_piotr 22.06.2012, 15:36:51 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 17.06.2025 - 19:08 |