<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 用戶自定義函數 一個函數可由以下的語法來定義: **Example #1 展示函數用途的偽代碼** ```<?php function?foo($arg_1,?$arg_2,?/*?...,?*/?$arg_n) { ????echo?"Example?function.\n"; ????return?$retval; } ?> ``` 任何有效的 PHP 代碼都有可能出現在函數內部,甚至包括其它函數和[類](http://php.net/manual/zh/language.oop5.basic.php#language.oop5.basic.class)定義。 函數名和 PHP 中的其它標識符命名規則相同。有效的函數名以字母或下劃線打頭,后面跟字母,數字或下劃線。可以用正則表達式表示為:*\[a-zA-Z\_\\x7f-\\xff\]\[a-zA-Z0-9\_\\x7f-\\xff\]\**。 **Tip** 請參見[用戶空間命名指南](http://php.net/manual/zh/userlandnaming.php)。 函數無需在調用之前被定義,*除非*是下面兩個例子中函數是有條件被定義時。 當一個函數是有條件被定義時,必須在調用函數*之前*定義。 **Example #2 有條件的函數** ``` <?php $makefoo?=?true; /*?不能在此處調用foo()函數, ???因為它還不存在,但可以調用bar()函數。*/ bar(); if?($makefoo)?{ ??function?foo() ??{ ????echo?"I?don't?exist?until?program?execution?reaches?me.\n"; ??} } /*?現在可以安全調用函數?foo()了, ???因為?$makefoo?值為真?*/ if?($makefoo)?foo(); function?bar() { ??echo?"I?exist?immediately?upon?program?start.\n"; } ?> ``` **Example #3 函數中的函數** ``` <?php function?foo() { ??function?bar() ??{ ????echo?"I?don't?exist?until?foo()?is?called.\n"; ??} } /*?現在還不能調用bar()函數,因為它還不存在?*/ foo(); /*?現在可以調用bar()函數了,因為foo()函數 ???的執行使得bar()函數變為已定義的函數?*/ bar(); ?> ``` PHP 中的所有函數和類都具有全局作用域,可以定義在一個函數之內而在之外調用,反之亦然。 PHP 不支持函數重載,也不可能取消定義或者重定義已聲明的函數。 > **Note**: 函數名是大小寫無關的,不過在調用函數的時候,使用其在定義時相同的形式是個好習慣。 PHP 的函數支持[可變數量的參數](http://php.net/manual/zh/functions.arguments.php#functions.variable-arg-list)和[默認參數](http://php.net/manual/zh/functions.arguments.php#functions.arguments.default)。參見 [func\_num\_args()](http://php.net/manual/zh/function.func-num-args.php),[func\_get\_arg()](http://php.net/manual/zh/function.func-get-arg.php) 和 [func\_get\_args()](http://php.net/manual/zh/function.func-get-args.php)。 在 PHP 中可以調用遞歸函數。 **Example #4 遞歸函數** ``` <?php function?recursion($a) { ????if?($a?<?20)?{ ????????echo?"$a\n"; ????????recursion($a?+?1); ????} } ?> ``` > **Note**: 但是要避免遞歸函數/方法調用超過 100-200 層,因為可能會使堆棧崩潰從而使當前腳本終止。 無限遞歸可視為編程錯誤。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看