首頁 >後端開發 >php教程 >PHP自訂函數官方文檔

PHP自訂函數官方文檔

WBOY
WBOY原創
2016-07-29 09:16:09885瀏覽

一個函數可由以下的語法定義:

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>?所有函數和類別都具有全域作用域,可以定義在一個函數之內而在之外調用,反之亦然。

PHP 不支援函數重載,也不可能取消定義或重定義已宣告的函數。

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>

Note:

但是要避免遞歸函數/方法呼叫超過100-200 層,因為可能會使堆疊崩潰從而使當前腳本終止。 無限遞歸可視為程式錯誤。

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

以上就介紹了PHP自訂函數官方文檔,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn