Tworzenie funkcji

   W programach przykładowych były już użyte funkcje, chociaż nie było o tym mowy. Konkretnie była użyta funkcja echo. Jest to przykład funkcji zdefiniowanej przez twórców języka PHP. Ale można też stworzyć własną funkcję. Wygląda to tak:

Function f($a, $b)
{
   $a+=$b;
   echo($a);
}

f(7, 2); /* teraz wykonają się komendy zawarte w treści funkcji. Zmienna $a będzie miała wartość 7, $b 2 */

   Jak widać deklaracja funkcji zaczyna się od słowa Function. Następnie podaje się nazwę funkcji i w nawiasie listę parametrów oddzielonych przecinkami. Potem w nawiasach klamrowych należy podać treść funkcji. W celu wywołania funkcji podaje się jej nazwę i w nawiasach listę wartości parametrów. Jeżeli nie przekazuje się żadnych parametrów, i tak należy po nazwie funkcji umieścić pusty nawias.

   Funkcji należy używać, gdy dany fragment kodu musi zostać wykonany w wielu miejscach. Dobrze jest też dłuższe fragmenty skryptów umieścić w kilku funkcjach w celu zwiększenia przejżystości.

Zmienne w funkcjach

   Kiedy zmienna jest zadeklarowana poza funkcją, jej wartość nie będzie widoczna w funkcji. Ilustruje to przykład:

$a=5;

Function f()
{
     echo($a);
}

f();

   Wykonanie powyższego kodu nie spowoduje, jak mogłoby się wydawać, wyświetlenia liczby 5. Żeby zmienna globalna (w tym wypadku $a) była widoczna wewnątrz funkcji, należy użyć polecenia global:

$a=5;

Function f()
{
   global $a;
   echo($a);
}

f();

   Po wykonaniu powyższego kodu w dokumencie pojawi się liczba 5.

   Jeżeli stworzymy zmienną wewnątrz funkcji, jej wartość będzie za każdym wywołaniem ustawiana od początku:

Function f()
{
   $a=2;
   echo($a);
   $a++;
}

f();
f();

   Wykonanie tego kodu spowoduje pojawienie się dwa razy tego samego. Jeżeli chcemy, żeby zmienna nie traciła wartości po zakończeniu funkcji, należy użyć polecenia static:

Function f()
{
   static $a=2;
   echo($a);
   $a++;
}

f();
f();

   Teraz w dokumencie pojawi się najpierw liczba 2, potem 3.

Zwracanie wartości

   Funkcja może zwrócić wartość. używa się do tego polecenia return:

Function f($p)
{
   return 3*$p;
}

$a=f(7);
echo($a); /* $a ma wartość 21 */

/* można też od razu echo(f(7)); */

   Ten skrypt wyświetli liczbę 21. Po zwróceniu wartości kończy się wykonanie funkcji:

Function f()
{
   return 3;
   echo("Ten tekst się nie wyświetli");
}

   Po wykonaniu polecenia return kończy się działanie funkcji i funkcja echo nie jest wywoływana.