Funkcja jest kawałkiem kodu, który można wywołać podając jej nazwę.
Już wcześniej podane zostało kilka funkcji dostarczanych przez PHP,
takich jak array(), each(),
list(), explode() czy
implode(). Jak można zauważyć, funkcje rozpoznaje
się po nawiasach występujących po ich nazwie. W nawiasach tych (jeśli
funkcja tego wymaga) podaje się parametry dla danej funkcji. Niektóre
funkcje zwracają jakąś wartość, a więc wywołanie takiej funkcji można
wstawić jak dowolne inne wyrażenie do listy parametrów innej funkcji
czy np. do obliczenia.
Programista może też tworzyć własne funkcje.
Przykład 6.1. Definicja funkcji
<?php function suma($parametr1 = 0, $parametr2 = 0) { $wartosc = $parametr1 + $parametr2; return $wartosc; } ?>
|
Jak widać, definiowana jest funkcja o nazwie suma. Służy ona do
obliczania sumy dwóch wyrażeń podawanych jako parametry (kolejne
parametry oddziela się przecinkiem). W przypadku pominięcia
któregoś z parametrów przypisana mu będzie wartość 0 - dzieje się
tak dzięki zaznaczeniu " = 0" po określeniu nazwy parametru w
definicji funkcji (nie jest to konieczne). Z parametrów funkcji
można korzystać jak z dowolnej innej zmiennej, ale oczywiście tylko
wewnątrz tej funkcji. Wewnątrz funkcji dostępne są tylko zmienne w
niej definiowane i parametry. Można się dostać też do innych
zmiennych, ale o tym w punkcie "Zasięg zmiennych". Do określania co
jest zwracane przez funkcję służy instrukcja return. Może ona być
wywołana w dowolnym miejscu funkcji - po dojściu do tej instrukcji
kończy się wykonanie funkcji.
Funkcja może nie zwracać żadnych wartości. Taka funkcja przydaje
się jeśli często powtarzany jest jakiś fragment kodu. Taka funkcja
kończy swoje wykonanie po dojściu do końca jej definicji lub
instrukcji return (tym razem wywoływanej bez parametru, ponieważ
funkcja nie zwraca żadnych wartości).
Funkcje w PHP nie mogą być ponownie definiowane. Mogą być
definiowane w zasadzie w dowolnym miejscu kodu. Wewnątrz funkcji
znajdować się może dowolny, prawidłowy pod względem składniowym kod
- nawet definicje innych funkcji czy klas.