一個函數可由以下的語法定義:
Example #1 展示函數用途的偽代碼
<span><span><?php <br></span><span>f , </span><span> $arg_2</span><span>, </span><span>/* ..., */ </span><span>$arg_n</span><span>)</span>{<span> </span><span>$retval</span><span>;</span>}<span><br> <br>?></span><span></span><span><br></span><span>任何有效的PHP 程式碼都有可能出現在函數內部,甚至包括其它函數和類別定義。
</span><span>函數名和 PHP 中的其它標識符命名規則相同。有效的函數名稱以字母或底線打頭,後面跟著字母,數字或底線。可以用正規表示式表示為:<br>[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*<br>。
</span><span>Tip</span></span>函數無需在呼叫之前被定義,
除非
之前
定義。Example #2 有條件的函數
$makefoo
= 因為它還不存在,但可以呼叫bar()函數。 */
bar
();
if (<span>$makefoo<span><br>) {</span> function <span> </span>"I don't exist until program execution reaches me.n "<span></span>;<span> }<br>}</span><span><br>/* 現在可以安全地調用函數 foo()了,<br> 因為 $ </span><span>foo</span><span>( );<br>function </span><span>bar</span><span>()<br>{</span> echo <span></span>"I exist immediately upon programo? <span><br><br></span><span></span>Example #3 函數中的函數<span><br><br><br></span><span><?php <br><br></span>function <span></span>foo<span></span>()<span>{ echo </span><span>"I don't exist until foo() is called.n"</span><span>;<br> }</span>}<span></span><span>/* 現在還不能呼叫bar()函數,因為它還不存在 */<br><br></span>foo ()函數了,因為foo()函數<span> 的執行使bar()函數變成定義的函數 */</span><span><br>bar<br></span>();<span></span></span>?所有函數和類別都具有全域作用域,可以定義在一個函數之內而在之外調用,反之亦然。
Note:
函數名稱是大小寫無關的,不過在呼叫函數的時候,使用其在定義時相同的形式是個好習慣。
在 PHP 中可以呼叫遞歸函數。 <span><span><br>Example #4 遞歸函數</span><span></span><span></span><span><?php <br><br></span>function <span> if (</span><span>$a <br><br><span>20</span> <span>) {<br> echo <br><br>"</span><span>$a<br></span>n"<span></span>; <span><br>+ </span><span>1<br><br>);</span> }<span>}</span><span><br>?></span> <span></span></span></span>
但是要避免遞歸函數/方法呼叫超過100-200 層,因為可能會使堆疊崩潰從而使當前腳本終止。 無限遞歸可視為程式錯誤。
版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。
以上就介紹了PHP自訂函數官方文檔,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。