Eine Funktion kann durch die folgende Syntax definiert werden:
Beispiel #1 Pseudocode, der den Zweck der Funktion zeigt
<span><span><?php<br></span><span>function </span><span>foo</span><span>(</span><span>$arg_1</span><span>, </span><span>$arg_2</span><span>, </span><span>/* ..., */ </span><span>$arg_n</span><span>)<br>{<br> echo </span><span>"Example function.n"</span><span>;<br> return </span><span>$retval</span><span>;<br>}<br></span><span>?></span></span>
Jeder gültige PHP-Code kann innerhalb einer Funktion erscheinen, auch in anderen Funktions- und Klassendefinitionen.
Für Funktionsnamen gelten dieselben Benennungsregeln wie für andere Bezeichner in PHP. Gültige Funktionsnamen beginnen mit einem Buchstaben oder Unterstrich, gefolgt von Buchstaben, Zahlen oder Unterstrichen. Es kann als regulärer Ausdruck ausgedrückt werden: [a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*.
Tipp
Funktion muss vor dem Aufruf nicht definiert werden, es sei denn, ist, wenn die Funktion in den folgenden beiden Beispielen bedingt definiert wird.
Wenn eine Funktion bedingt definiert ist, muss sie definiert werden, bevor die Funktion aufgerufen wird.
Beispiel #2 Bedingte Funktion
<span><span><?php<br>$makefoo </span><span>= </span><span>true</span><span>;<br></span><span>/* 不能在此处调用foo()函数,<br> 因为它还不存在,但可以调用bar()函数。*/<br></span><span>bar</span><span>();<br>if (</span><span>$makefoo</span><span>) {<br> function </span><span>foo</span><span>()<br> {<br> echo </span><span>"I don't exist until program execution reaches me.n"</span><span>;<br> }<br>}<br></span><span>/* 现在可以安全调用函数 foo()了,<br> 因为 $makefoo 值为真 */<br></span><span>if (</span><span>$makefoo</span><span>) </span><span>foo</span><span>();<br>function </span><span>bar</span><span>()<br>{<br> echo </span><span>"I exist immediately upon program start.n"</span><span>;<br>}<br></span><span>?></span></span>
Beispiel #3 Funktion innerhalb einer Funktion
<span><span><?php<br></span><span>function </span><span>foo</span><span>()<br>{<br> function </span><span>bar</span><span>()<br> {<br> echo </span><span>"I don't exist until foo() is called.n"</span><span>;<br> }<br>}<br></span><span>/* 现在还不能调用bar()函数,因为它还不存在 */<br></span><span>foo</span><span>();<br></span><span>/* 现在可以调用bar()函数了,因为foo()函数<br> 的执行使得bar()函数变为已定义的函数 */<br></span><span>bar</span><span>();<br></span><span>?></span></span>
Alle Funktionen und Klassen in PHP haben einen globalen Gültigkeitsbereich und können innerhalb einer Funktion definiert und umgekehrt aufgerufen werden.
PHP unterstützt keine Funktionsüberladung und es ist nicht möglich, deklarierte Funktionen aufzuheben oder neu zu definieren.
Hinweis: Bei Funktionsnamen wird die Groß-/Kleinschreibung nicht beachtet, aber beim Aufrufen einer Funktion ist es eine gute Angewohnheit, die gleiche Form zu verwenden, in der sie definiert wurde.
Rekursive Funktionen können in PHP aufgerufen werden.
Beispiel #4 Rekursive Funktion
<code><span><span><?php<br></span><span>function </span><span>recursion</span><span>(</span><span>$a</span><span>)<br>{<br> if (</span><span>$a </span><span>< </span><span>20</span><span>) {<br> echo </span><span>"</span><span>$a</span><span>n"</span><span>;<br> </span><span>recursion</span><span>(</span><span>$a </span><span>+ </span><span>1</span><span>);<br> }<br>}<br></span><span>?></span></span>
$aRekursion(
)
{
if (