首页 » PHP和MySQL Web开发(原书第4版) » PHP和MySQL Web开发(原书第4版)全文在线阅读

《PHP和MySQL Web开发(原书第4版)》5.3 在PHP中使用函数

关灯直达底部

函数存在于大多数的编程语言中。它们用于分隔那些能够完成独立而又明确的任务的代码。这使得代码更易于阅读,并且允许在每次需要完成同样任务的时候重复使用代码。

函数是一个给出了调用接口的自包含模块,它可以执行一些任务,还可以返回结果(可选的)。

你肯定已经见到过了许多函数。在前面的章节中,我们已经调用了许多PHP内置的函数。

此外,我们还编写了几个简单的函数,但是我们忽略了其中的细节。在这一节中,我们将更详细地介绍如何调用和编写函数。

5.3.1 调用函数

如下所示代码是调用函数最简单的例子:

function_name;

以上代码将调用一个名为function_name且不需要任何输入参数的函数。这行代码还忽略了任何可能的函数返回值。

许多函数确实就是这样调用的。在测试时,你会发现函数phpinfo是非常有用的,因为它显示了已安装的PHP的版本、关于PHP的信息、Web服务器的设置和众多的PHP和服务器变量的值。这个函数不需要任何参数,通常可以忽略它的返回值,所以,可以使用如下所示方式调用函数phpinfo:

phpinfo;

然而,大多数函数都需要一个或更多的参数,它们都是函数的输入参数。我们通过将数据或变量名放在函数名称后面的括号内,从而以参数形式传给函数。为函数提供一个参数并对其进行调用如下所示:

function_name('parameter');

在这个例子中,所使用的参数是一个只包含parameter的字符串,但是,依据函数的不同,如下所示的调用也是可以的:

function_name(2);

function_name(7.993);

function_name($variable);

在最后一行中,$variable可以是任何一种PHP变量,包括数组或对象。

参数可以是任何数据类型,但特定的函数通常会要求特定的数据类型。

可以通过函数原型来了解函数所需的参数个数,每一个参数所表示的对象以及每一个参数的数据类型。通常,在本书中,当我们描述一个函数时,会给出一个函数的原型。

fopen的函数原型如下所示:

resource fopen(string filename,string mode

[,bool use_include_path[,resource context]])

这个函数原型告诉了我们许多信息,知道如何正确地解释这些说明是非常重要的。在这个例子中,函数名称前面的单词"resource"告诉我们这个函数会返回一个资源(即一个打开的文件句柄)。而函数的参数在括号的里面。在fopen的例子中,函数原型中给出了4个参数。文件名称、打开模式这两个参数都是字符串,而use_include_path是一个布尔值,而参数context是一个资源。use_include_path外面的方括号指明了这个参数是可选的。可以给可选参数赋值也可以忽略它们,如果忽略它们则会使用默认值。但是,请注意,一个具有多个可选值的函数,必须按照从右到左的顺序使用默认值。例如,当使用fopen函数,可以不给出context参数,或者可以不提供use_include_path和context参数;但是,不能不提供use_include_path参数,而只提供zcontext参数。

在了解这个函数的函数原型后,可以知道下面的fopen的调用是有效的:

$name='myfile.txt';

$openmode='r';

$fp=fopen($name,$openmode);

以上代码调用了fopen函数,函数的返回值将保存在变量$fp中。对于这个例子来说,我们传递给函数一个名为$name的变量,它包含了要打开文件的名称,还有一个名为$openmode的变量,它包含了一个表示要打开文件的字符串,表示文件的打开模式。我们并没有给出第三个和第四个可选参数。