![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
witam, w tym kodzie wywolujac funkcje alert nie dostaniemy nic bo funkcja nie 'widzi' zmiennej $str
moje pytanie jest nastepujace. czesto potrzebuje uzyc jakiejs zmiennej w funkcji ktora jest zadeklarowana wczesniej. jedyny sposob jaki znam by to obejsc to uzycie global przed zmienna, ale jest to zla praktyka programistyczna, wiec wolalbym tego unikac. tak wiec jaki jest sposob na modyfikacje powyzszego kodu tak aby wyswietlil mi napis HW? jakas referencja moze? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Funkcję mogą przyjmować parametry. Poczytaj o tym, bo to podstawa.
-------------------- "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: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tak, ale ta referencja jest nieptrzebna
-------------------- "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: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
ale bez refernecji zeby mi cos wypisał bede musial przy kazdym jej wywołaniu podac co chce wypisac. a mi wlasnie chodzi o to zeby on to co ma wypisac pobrałz wczesnie jzadeklarowanej zmiennej $str
![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 590 Pomógł: 107 Dołączył: 25.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Nie, to nie tak działa.
Mając dwie funkcje zdefiniowane jak ponizej: Kod function a (&$str) function b ($str) Możesz swobodnie zmieniać wartość $str tylko w funkcji b - bo podczas wywoływania funkcji b jest tworzona lokalna kopia zmiennej $str (KOPIA - czyli zawiera to samo, co "poziom wyżej", czyli tam, skąd była wywołana). Jeśli zmienisz wartość $str w funkcji a, to zmienisz ją także w programie. Tak to mniej więcej działa. Poczytaj o czymś takim jak zasięg zmiennych czy też o przekazywaniu zmiennych przez referencję. Ewentualnie zrób dwie IDENTYCZNE funkcje z parametrem (np. tak jak wyżej) i w ciele funkcji zmieniaj ten parametr - a po wyjściu z funkcji wypisz sobie go ponownie. Zobaczysz różnicę. Generalnie uważam, że pisanie funkcji z przekazywaniem zmiennych przez referencję powinno być jak najrzadziej używane (choć czasami bywa pożyteczne). |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 00:53 |