Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 7.10.2009 Ostrzeżenie: (0%)
|
|
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%)
|
Jeden prosty przykład masz już wyżej. Spróbuj w nim zmienić "return" na "echo" i zobaczysz, że przestanie działać. Ogólnie przypomnij sobie funkcje matematyczne, np. sin(), bo ogólna zasada jest podobna. Do funkcji podajesz jakieś argumenty, a one obliczają Ci wynik, z którym możesz coś później zrobić, np. użyć w jakimś wzorze. Zauważ, że wynik funkcji matematycznej zależy wyłącznie od podanych jej argumentów. Jest to bardzo ważna cecha - ogólnie takie funkcje (zwane "czystymi", jak kogoś to interesuje) są najlepsze i bardzo pożądane. Zatem zapiszmy sobie takiego sinusa:
Kod $a + $b + sin($c) Widzisz? Mogę wykonać to obliczenie, bo sin() obliczoną wartość zwraca. Ale napiszemy sobie teraz inny wariant tej funkcji: Kod function sin_alt($x) { // tutaj obliczenia matematyczne echo $wynikObliczen; } // end sin_alt(); I nagle przestaje być wesoło: Kod $a + $b + sin_alt($c) Takie wyrażenie już nam nie zadziała, bo Twoja funkcja zamiast zwrócić ten wynik, by mógł się nim zająć operator dodawania, wysłała go do przeglądarki. Twój sin_alt() nie zwraca teraz żadnej wartości, więc powyższe wyrażenie przestaje być poprawne. Kiedy co stosować? Pierwsze - prawie nigdy, drugie - prawie zawsze. W swoich aplikacjach echo mam tylko w kodzie generującym wynikowy HTML i ten kod prawie w ogóle nie korzysta z funkcji. Cała reszta aplikacji zwraca wyniki przez return. Ten post edytował Zyx 11.10.2010, 14:51:02 |
|
|
|
olkaa [PHP] Funkcje 11.10.2010, 14:28:54
Quantum Pierwsza drukuje odrazu tekst bez jego zwracania, ... 11.10.2010, 14:33:58
Largo Cytat(olkaa @ 11.10.2010, 13:28:54 ) ... 11.10.2010, 14:34:06
marcio Roznica jest taka ze return nie zwraca odrazu wyni... 11.10.2010, 14:34:17
olkaa Byłabym wdzięczna za proste przykłady, żebym mogła... 11.10.2010, 14:40:11 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 16:52 |