Funktionen

Eine Funktion ohne Übergabeparameter und ohne Rückgabewert (dies ist eigentlich gar keine Funktion, sondern eine Procedure) wird wie folgt geschrieben:

Function Test
(
echo "Test Funktion\n";
);

Wichtig: anstelle der in "C" üblichen geschweiften Klammern {}werden hier runde Klammern benutzt (). Diese Funktion kann irgendwo im Programm so aufgerufen werden:

<?
Test();
>

Funktion mit Übergabeparameter und Rückgabewert:

Function Summe $a,$b
(
return ($a+$b);
);

echo Summe (3,5);

Gültigkeit von Variablen

$a=1; /* globale Variable */
Function Test
(
echo $a; /* dieses $a ist eine lokale Variable! */
);
Test();

Dieses Beispiel erzeugt keine Ausgabe, da $a in der Funktion Test eine lokale und zum Zeitpunkt der echo-Anweisung eine undefinierte Variable ist. Doch wie greift man in einer Funktion auf eine globale Variable zu?
So:

$a=1;
$B=2;
Function Summe
(
global $a,$b;
echo ($a+$b);
);

Summe();

Statische lokale Variablen

Das Programm:

Function Test1
(
$a=0;
echo $a;
$a++;
);

Function Test2
(
static $a=0;
echo $a;
$a++;
);

Test1 ();
Test1 ();
Test1 ();
Test2 ();
Test2 ();
Test2 ();
Test2 ();

bewirkt folgende Ausgabe:

0 0 0 0 1 2 3

Der Wert einer Statischen Variable bleibt erhalten, auch wenn die Funktion (Test2) verlassen wird. Statsche Variablen sind besonders wichtig bei rekursiven Funktionen: Folgendes Beispiel zählt von 1 bis 10;

Function Test
(
static $i=0;

$i++;
echo $i;
if ($i < 10)
{
Test();
}
);