如何閱讀函式的定義(函式原型)

如何閱讀函式的定義(函式原型)

文件中的每個函式都只是快速參考,學會如何閱讀和理解文件將使得 PHP 的使用更加簡單。和依賴賴於複製/貼上範例比起來,使用者一定更希望知道如何閱讀函式的定義(函式原型):

注意: 先決條件,對變數型別的基本理解

儘管 PHP 是一種鬆散型別語言,但變數型別有重要的意義,需要理解它的基本知識。

函式定義告訴我們函式返回什麼型別的值,讓我們用函式 strlen() 的定義作為第一個範例:

strlen

(PHP 4, PHP 5, PHP 7)
strlen -- Get string length

說明
strlen ( string $string ) : int

返回給定的字串 string 的長度。

對函式定義的解釋
組成部分 說明
strlen 函式名稱。
(PHP 4, PHP 5, PHP 7) strlen() 在 PHP 4, PHP 5 和 PHP 7 的所有版本中都存在。
( string $string ) 第一個(本例中是唯一的)參數,在該函式中名為 string,且型別為 string
int 該函式返回的值的型別,這裡為整型 int(即以數字來衡量的字串的長度)。

可以將以上函式的定義寫成一般形式:

          函式名          ( 參數型別           參數名 )        返回型別
      function name    ( parameter type   parameter name ) : returned type

很多函式都有多個變數,例如 in_array()。其函式原型如下:

      in_array ( mixed $needle, array $haystack , bool $strict = false ) : bool

這是什麼意思?in_array() 返回一個「布爾」值,成功(如果在參數 haystack 中能找到參數 needle)則返回 true, 或者在失敗時返回 false(如果在參數 haystack 中找不到參數 needle)。第一個參數被命名為 needle 且其型別不定,因此我們將其稱為「混和」型別。該混和型別的 needle 參數(我們要找的對象)可以是一個標量的值(字串、整數、或者浮點數),或者一個陣列haystack(我們尋找的範圍)是第二個參數。第三個可選參數被命名為 strict。所有的可選參數都用 [ 方括號 ] 括起來。手冊表明 strict 參數預設值為布爾值 false。需要了解函式工作的細節,請參閱手冊中和該函式相關的頁面。

函式參數前的 & 符號使參數以 引用 方式傳遞,如下所見:

       preg_match ( string $pattern , string $subject [, array &$matches
      [, int $flags = 0 [, int $offset = 0 ]]] ) : int

在這個例子中,我們可以看到,第三個可選參數 &$matches 會意引用方式傳遞。

有的函式包含更復雜的 PHP 版本資訊。我們拿 html_entity_decode() 舉例:

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

它意味著該函式只可在 PHP 4.3.0 及以後發佈的版本中使用。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。