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);
$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();
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();
}
);