php如何自訂一個方法

藏色散人
發布: 2023-03-04 10:18:02
原創
2751 人瀏覽過

在PHP中可以透過【function foo($arg_1, $arg_2, /* ..., */ $arg_n){echo "Example function.\n";return $retval;}】形式定義一個方法。

php如何自訂一個方法

推薦:《PHP影片教學

使用者自訂函數 

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

Example #1 展示函數用途的偽代碼

<?php
function foo($arg_1, $arg_2, /* ..., */ $arg_n)
{
    echo "Example function.\n";
    return $retval;
}
?>
登入後複製

任何有效的PHP 程式碼都有可能出現在函數內部,甚至包括其它函數和類別定義。

函數名稱和 PHP 中的其它標識符命名規則相同。有效的函數名稱以字母或底線打頭,後面跟著字母,數字或底線。可以用正規表示式表示為:^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$。

Tip

請參考使用者空間命名指南。

函數不需要在呼叫之前被定義,除非是下面兩個例子中函數是有條件被定義時。

當一個函數是有條件被定義時,必須在呼叫函數之前定義。

Example #2 有條件的函數

<?php
$makefoo = true;
/* 不能在此处调用foo()函数,
   因为它还不存在,但可以调用bar()函数。*/
bar();
if ($makefoo) {
  function foo()
  {
    echo "I don&#39;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&#39;t exist until foo() is called.\n";
  }
}
/* 现在还不能调用bar()函数,因为它还不存在 */
foo();
/* 现在可以调用bar()函数了,因为foo()函数
   的执行使得bar()函数变为已定义的函数 */
bar();
?>
登入後複製

PHP 中的所有函數和類別都具有全域作用域,可以定義在一個函數之內而在之外調用,反之亦然。

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

Note: 從 A 到 Z 的 ASCII 函數名稱是大小寫無關的,不過在呼叫函數的時候,使用其在定義時相同的形式是個好習慣。

PHP 的函數支援可變數量的參數和預設參數。參見 func_num_args(),func_get_arg() 和 func_get_args()。

在 PHP 中可以呼叫遞歸函數。

Example #4 遞歸函數

<?php
function recursion($a)
{
    if ($a < 20) {
        echo "$a\n";
        recursion($a + 1);
    }
}
?>
登入後複製

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

以上是php如何自訂一個方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板