如何阅读函数的定义(函数原型)

文档中的每个函数都只是快速参考,学会如何阅读和理解文档将使得 PHP 的使用更加简单。和依赖赖于复制/粘贴范例比起来,用户一定更希望知道如何阅读函数的定义(函数原型):

先决条件,对变量类型的基本理解
尽管 PHP 是一种松散类型语言,但变量类型有重要的意义,需要理解它的基本知识。

函数定义告诉我们函数返回什么类型的值,让我们用函数strlen()的定义作为第一个范例:

strlen

(PHP 4, PHP 5)
strlen -- 获取字符串长度

说明
int strlen ( string str )

返回给定的字符串 string 的长度。

对函数定义的解释
组成部分说明
strlen函数名称。
(PHP 4, PHP 5)strlen()在 PHP 4 和 PHP 5 的所有版本中都存在。
int该函数返回的值的类型,这里为整型integer(即以数字来衡量的字符串的长度)。
(string str)第一个(本例中是唯一的)参数,在该函数中名为string,且类型为string

可以将以上函数的定义写成一般形式:

返回类型          函数名           ( 参数类型          参数名 )
      returned type    function name    ( parameter type   parameter name )

淘宝 adsense 商品推荐

【AMOR推荐/生活化预言】AdSense 潜移物化 心灵预言魔术道具

价格:238元

很多函数都有多个变量,例如in_array()。其函数原型如下:

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

这是什么意思?in_array()返回一个"布尔"值,成功(如果在参数haystack中能找到参数needle)则返回TRUE, 或者在失败时返回FALSE(如果在参数haystack中找不到参数needle)。第一个参数被命名为needle且其类型不定,因此我们将其称为"混和"类型。该混和类型的needle参数(我们要找的对象)可以是一个标量的值(字符串、整数、或者浮点数),或者一个数组haystack(我们寻找的范围)是第二个参数。第三个可选参数被命名为strict。所有的可选参数都用[方括号]括起来。手册表明strict参数默认值为布尔值FALSE。需要了解函数工作的细节,请参阅手册中和该函数相关的页面。

函数参数前的 & 符号使参数以引用方式传递,如下所见:

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

淘宝 云主机 商品推荐

远程电脑出租e5主机云服务器物理机游戏云主机工作室服务器租用

价格:12元

在这个例子中,我们可以看到,第三个可选参数&$matches会意引用方式传递。

有的函数包含更复杂的 PHP 版本信息。我们拿html_entity_decode()举例:

(PHP 4 >= 4.3.0, PHP 5)

它意味着该函数只可在 PHP 4.3.0 及以后发布的版本中使用。