《第7章PHP中的函数.ppt》由会员分享,可在线阅读,更多相关《第7章PHP中的函数.ppt(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第7章 PHP中的函数函数通常表达变量与变量之间的关系,是能够独立完成一定操作的代码段。一般情况下,给出一个值将会有一个或者几个值与其对应。而函数也是PHP中很重要的内容,本章就来介绍PHP中的函数。7.1 什么是函数本节首先将介绍函数的概念、函数的构成、函数的调用这些基本知识。学习这些内容将使读者对于函数有一个总体上的认识。7.1.1 函数的构成在初中数学中曾经这样定义函数:设在某变化过程中有两个变量x与y,如果对于x的每一个值,y都有惟一的值(也可以是多个值)与它对应,那么就说y是x的函数,x叫自变量。从这个定义中可以看出,函数表示变量与变量之间的关系。而在PHP中,函数通常是指能够完成独
2、立操作的代码段。这样的代码段通常由如下所示代码构成:functionname(varname);其中functionname为函数名,varname为调用函数所需要的参数。从以上代码可以看出,在PHP中调用一个函数可以用函数名+括号+参数(如果需要)构成。函数的返回值指运行函数之后所返回的结果值。给定一个参数通常会有一个函数的返回值与之对应。在PHP中运行下面的代码(求绝对值):abs(-9)将返回9。因为函数abs()的作用是返回指定参数的绝对值,而绝对值的规则是:正值直接返回;负值为去负号返回。在参数为-9时,函数abs()的返回值就是9。7.1.2 调用函数PHP中的函数既可能没有参数也
3、可能没有返回值,不过其共同点是都可以独立的完成某种固定的操作。在PHP中,调用一个函数语法如下所示。functionname(varname);以上代码中的functionname为调用函数的函数名,而varname为函数运行所需要的参数。从以上代码可以看出:调用函数时,直接用一个函数的函数名加一对半角括号即可。如果函数需要参数,则要在括号中给出函数所需要的参数表。PHP系统中有一类已经由系统定义过的函数,该类函数叫做系统预定义函数,可以直接调用。而除此之外的用户自定义函数在调用前,必须已经定义,如果未定义则会给出错误提示。而系统预定义函数则没有这种限制,可以直接调用。7.2 自定义函数自定义
4、函数是由用户定义的,用来完成特定功能的一类函数的统称。使用用户自定义函数可以完成很多由系统函数所无法完成的功能与操作。7.2.1 创建自定义函数PHP系统中已经存在大量的系统预定义函数。但是在特殊情况下,这些函数可能并不能满足用户的要求。所以,为了完成特定的任务,必须用户自己组织代码。同时,如果这些代码的重复使用率非常高的话,就应该把这些代码定义为函数。这样,在需要重用时,直接调用自定义函数即可。在PHP中自定义一个函数,采用如下样式:function functionname(varname)/函数体 return result;查看以上代码可见,在PHP中要创建一个自定义函数的方法为:使用
5、关键字function加上自定义函数的函数名(functionname),加一对半角括号(如果函数需要参数,则要在括号中给出函数的参数表),加一对大括号来界定函数体。函数体中为函数执行的操作,如果函数有返回值,则使用return关键字加返回值(result)来将其返回。7.2.2 设置传递参数在用户创建自定义函数时,有时出于需要为函数设置传递的参数。函数的参数是有参数函数执行所必须的一项要素。参数的类型可以根据函数的需要设定。其类型包括PHP中所有的变量类型,甚至是数组或者对象。如果调用有参数函数时不设置参数,就会出现没有提供参数,或者参数不正确的提示。下面的代码尝试用无参数的方式调用系统函数
6、abs()。7.2.3 设置返回值函数的返回值,指函数执行之后的结果值。从函数有无返回值上可以把函数分为有返回值函数(执行函数将返回某一值)与无返回值函数(执行之后不返回任何值)两类。为自定义函数设定返回值,可以使用如下所示的代码格式。function functionname(varname)/函数体 return result;即则使用return关键字加返回值(result)来将其返回。7.3 系统函数系统函数是已经安装在系统中不需要定义就可以直接使用的一类函数。这一类函数是与自定义函数相对而言的。使用自定义函数前必须要先定义函数,否则将发生错误。而系统函数则可以随时随地调用。同样作为系
7、统函数也是有区分的。有PHP系统内核的系统函数,如前几节所提到的abs()函数;也有作为扩展模块存在的函数。作为系统内核的系统函数不需要任何设置即可使用。而扩展模块库函数必须在PHP中加载该类扩展才能正常使用。如GD库函数、MySQL库函数等等,这些函数都是作为PHP的扩展模块存在,如果PHP没有加载相应的扩展直接使用这类函数,系统就会提示:函数未定义。7.4 函数的特殊定义通常情况下,只要函数已经定义,则调用函数时就不会有问题。不管函数定义是在函数调用之前还是之后。但是有两种特殊的函数定义则受到这样的制约。本节就来介绍函数的两种特殊定义:有条件定义与嵌套定义。7.4.1 函数的有条件定义函数
8、的有条件定义是指在判断中使用函数定义。所以,只有判断条件为真时,函数定义过程才会被执行,才能正常调用函数。相反,如果判断条件为假,则函数的定义过程就不会被执行,此时就不能调用函数。7.4.2 函数的嵌套定义函数不仅可以在程序内部定义,也可以在判断结构中定义,甚至还可以在一个函数内部定义。在一个函数内部定义另外一个函数就叫做函数的嵌套定义。函数的嵌套定义规则是这样:如果外层函数没有被执行,则内层函数的定义过程也不会被执行;只有外层函数被执行了,内层函数才会被定义,此时才能调用内层函数。这种函数定义与函数的有条件定义情况非常相似,只是把定义函数的条件换成了一个函数。7.5 函数的递归函数可以在过程
9、中被调用,也可以在别的函数中被调用,甚至可以被函数自身调用。函数对函数自身的调用就叫做函数的递归。在处理实际问题时,有时使用通常的方法来解决问题会有相当的困难。而通过递归则能非常简单并且高效的处理。著名的斐波纳契(Fibanacci)数列就是一个经典的递归的例子。该数列是这样定义的:有人把一对(两只)兔子放在一个四面封闭,与外界完全隔绝的兔子窝中,而这两只兔子一定是一对情侣。假定每对兔子每个月都会生另外一对,而这新的一对在两个月后就会又生下另外一对。这样一年后一共会有多少对兔子?这里对该数作下简单的改动,设数组的首项与第二项均为1,结果就像下面的一组数:1、1、2、3、5、8、13、21、34、55、89、144、233这样就体现出了该数组的特点:除去前面项之外,数组的某一项均为它前面两项之和。7.6 本章小结函数是PHP编程中要接触到的最为广泛的内容之一。合理使用函数,可以极大提高工作效率,达到事半功倍的效果。PHP系统中为用户内置了相当多的系统函数,使用它们只需要直接调用即可。如果系统中的函数在功能上,或者使用目的上不符合特定情况的要求,用户还可以使用自定义函数。使用自定义函数有更大的灵活性,用户可以根据自已的需要,组织PHP代码来达到特定的目的。
限制150内