Menu
- Aktualności
- Mój startup Nowy odcinek
- Blogi ekspertów
- Projektowanie WWW
- Planowanie
- Hosting i domeny
- Organizacja i nawigacja
- Webdesign i grafika
- Warsztat - programy
- Tutoriale Photoshop
- Programowanie i tworzenie
- XHTML, HTML i CSS
- JavaScript, DOM i AJAX
- jQuery
- PHP i SQL
- Flash i ActionScript
- Dostępność i WAI
- Promowanie stron
- Pozycjonowanie
- Reklama i marketing
- Monitoring i statystyki
- Publicystyka
- Artykuły ogólne
- Społeczności
- Praca i zarabianie
- Wywiady
- Standardy sieciowe
- Zasoby
- Kursy
- Recenzje książek
- Linki
Dla webmastera
Kursy
Funkcje
Funkcje
Funkcje są to nazwane fragmenty kodu używane do tworzenia kolejnych fragmentów. Funkcje w PHP mogą zwracać jedną wartość lub żadnej. Jeżeli nie zwraca wartości to można ją nazwać procedurą. Oto najprostsza deklaracja funkcji w PHP i jej wywołanie:
| function prosta_funkcja() { echo "Oto prosta funkcja!"; } prosta_funkcja(); |
Naogół funkcje stosuje się, jeżeli używa się pewnego fragmentu kodu kilka razy w skrypcie. Stosowanie ich polepsza łatwość rozumienia kodu i jego widoczność.
Pierwszym pojęciem potrzebnym przy wykorzystywaniu funkcji jest parametr, inaczej nazywany też argumentem. Jest to wartość przekazywana do funkcji. Parametrów w funkcji może być bardzo dużo, a wszystkie muszą być oddzielone od siebie przecinkami. Oto przykład wykorzystania parametrów:
| function wyswietl($co, $komu) { switch ($komu) { case "mi": echo "$co jest adresowane do użytkownika!"; break; case "mu": echo "$co jest adresowane do kogoś innego"; break; } } wyswietl("Uczysz się PHP","mi"); |
W PHP możliwe jest ustalanie domyślnych wartości parametrów. Używa się tego w sposób następujący (w przykładzie korzystam z nagłówka wyżej napisanej funkcji):
function wyswietl($co = "Tekst",$komu = "mu")
Do zwracania wartości wyliczonych w funkcji służy instrukcja return. Zwracana może być zmienna dowolnego typu. Oto przykład użycia instrukcji return:
| function dodaj($co,$doczego) { $suma = $co+$doczego; return $suma; } echo dodaj(3,4); |
Można używać także innego sposobu przekazywania wyniku działania funkcji. Służą do tego zmienne referencyjne. Są to parametry, które zawsze (!) muszą być zmiennymi. Aby używać referencji trzeba przed każdą nazwą zmiennej referencyjnej (przed $) napisać znak ampersand (&). Oto przykład użycia referencji:
| function referencja(&$i,&$j) { $i=3; $j=5; } $l = 2; $k = 3; referencja($l,$k); echo "$l jest równe: $l $k jest równe: $k"; |
Używając funkcji należy zwrócić szczególną uwagę na zasięg zmiennych. Istnieje podział zmiennych ze względu właśnie na ich zasięg na:
- lokalne
- globalne
- superglobalne (używane w sesjach)
Zmienne lokalne to te utworzone w funkcjach. Natomiast jeżeli chcemy udostępnić zmienną funkcji nie używając referencji musimy ustalić, że jest ona globalną. Oto przykład używania zmiennych globalnych:
| function rob($co) { global $i; echo "$i: $co "; ++$i; } $i=0; while ($i<10) rob("PHP"); |
Oczywiście zmiennych globalnych może być bardzo dużo, to zależy tylko i wyłącznie od programisty. Jednak programując w PHP staraj się ograniczać ich ilość do minimum, aby tworzyć bardziej ogólne funkcje, które mogą się przydać nie tylko tobie, ale także innym programistom.
Ostatnim tematem dotyczącym funkcji jest rekurencja. Jest to wywołanie tej samej funkcji w niej samej. Rekurencja potrzebuje jednak ogromnych ilości pamięci, dlatego staraj się ograniczać jej używanie. Tworząc rekurencję musisz uważać, aby nie zapętliła się ona w nieskończoność. Oto przykład rekurencji:
| function rekurencja($i = 10) { if ($i!=1) { return $i*rekurencja($i-1); } else return $i; } echo rekurencja(); |
Powyższy skrypt oblicza 10!. Można go zamienić pętlą, która w mniejszym stopniu zapcha pamięć serwera:
| function silnia($i = 10) { $s = 1; for ($i=1;$i<=10;$i++) $s *= $i; return $s; } echo silnia(); |
Mówiąc o funkcjach należy też wspomnieć o instrukcjach include() i require(). Obydwie wstawiają kod z pliku o nazwie podanej w parametrze (jeżeli jest to kod PHP to musi on być zapisany w pliku między <?PHP i ?>), ale include() jest zależna on instrukcji warunkowych i pętli, natomiast require zawsze wstawia kod tylko raz (ani mniej, ani więcej!). Tworząc większe aplikacje bardzo często będziesz używał tych instrukcji, gdyż wiele skryptów potrzebuje tych samych funkcji operujących na danych itd.

