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

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

先決條件,對變量類型的基本理解: 儘管 PHP 是亞類型語系,但對變量類型有一個基本的理解也是非常重要的,因為它們有重要的意義。

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

strlen

(PHP 3, PHP 4, PHP 5)
strlen -- 取得字串長度

描述
int strlen ( string str )

返回字串的長度。

表格 R-1. 函數定義

組成部分說明
strlen 函數名稱
(PHP 3, PHP 4, PHP 5) strlen() 在 PHP 3 、PHP 4 和 PHP 5 中都存在
int 該函數返回的值的類型,這裡為整型。(例如,字串的長度是以數字來衡量的)
( string str ) 第一個(本例中是唯一的)參數,在該函數中名為 str,且類型為 string

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

返回類型    函數名    ( 參數類型   參數名 )

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

bool in_array ( mixed needle, array haystack [, bool strict])

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

有的函數包括更複雜的 PHP 版本訊息。我們拿 html_entity_decode() 舉例:

(PHP 4 >= 4.3.0, PHP 5)

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