零点起飞学PHP之函数

上传人:woxinch****an2018 文档编号:45313909 上传时间:2018-06-15 格式:PPTX 页数:24 大小:418.25KB
返回 下载 相关 举报
零点起飞学PHP之函数_第1页
第1页 / 共24页
零点起飞学PHP之函数_第2页
第2页 / 共24页
零点起飞学PHP之函数_第3页
第3页 / 共24页
零点起飞学PHP之函数_第4页
第4页 / 共24页
零点起飞学PHP之函数_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《零点起飞学PHP之函数》由会员分享,可在线阅读,更多相关《零点起飞学PHP之函数(24页珍藏版)》请在金锄头文库上搜索。

1、第4章 函数 函数是由一系列语句组成的一个独立而且功能完整的 功能块。它可以用来完成一些指定的操作,并返回操 作后的结果。使用函数可以简化代码结构,并降低代 码编写工作量。本章将主要介绍使用函数的优势和函 数的使用方法的知识。4.1 使用函数的优势 使用函数有两个最主要的优势:函数是一个完整而且 独立的功能块,因而使用函数的代码结构更加清晰, 可以明显增强代码的可读性;函数使得程序的可复用 性非常强。PHP系统默认已经定义了多种类型的千余 个函数,这些函数可以被任何一个PHP程序使用,这 就是函数可复用性的最明显表现。4.2 使用函数 PHP中的函数分为两类,分别是系统函数和用户自定 义函数。

2、系统函数的使用比较简单,本节将重点介绍 自定义函数的知识。4.2.1 自定义函数和调用 函数 自定义函数即为用户自己定义用来实现指定需求的函数。 定义函数的一般形式如下所示: function 函数名(参数列表) 函数体; return 返回值; 定义函数需要使用function关键字;函数名是用来为这一系 列操作定义的名称;参数列表是数据传入函数的入口;函 数体是函数的注意功能实现部分;函数都有返回值,但在 没有显式调用return语句返回一个值的时候,函数会默认返 回空类型(void)。4.2.1 自定义函数和调用 函数 【示例4-1】下面就来定义一个函数用来实现两个数相加并 返回操作结果

3、的函数,如下所示: 01function add($x,$y) 02return $x+$y;/返回变量之和 03 以上代码中,add是函数名;$x和$y是函数接受的参数; return后的表达式即为函数的返回值。函数调用的一般形式 如下所示: 函数名(参数列表); 函数名即在函数定义时指定的名称,参数列表需要对应函 数定义时的参数列表传入。4.2.1 自定义函数和调用 函数 【示例4-2】演示使用自定义函数add计算两数之和。 我们可以看到只要通过使用正确定义的函数名,我们 就可以轻易得到相应的结果。 在上面的学习中我们已经认识到return可以将函数的运 算结果返回。return语句也是跳

4、转语句的一种,它会立 刻终止当前函数的执行并返回结果。因此,return语句 通常会放在整个函数体的最后。4.2.2 函数的参数 函数的参数有实际参数和形式参数之分。形式参数即为一个形式,它只要可 以保证参数可以正确地传递到函数体中即可。因此只要符合PHP命名规范的 名称都可以使用。如下所示函数的功能是完全一致的: function add($x,$y) return $x+$y; function add($a,$b)/使用不同的形式参数 return $a+$b; function add($abc,$def)/使用不同的形式参数 return $abc+$def; 4.2.2 函数的参数

5、函数在定义时可以为形式参数设定默认参数,默认参数的定义必须是从右向左,并且默认参数的右 边不可有为设置默认参数的形式参数。如下所示是一些默认参数的示例: function func($x,$y,$z=0)/正确的默认参数设置方法 function func($x,$y=1,$z=0)/正确的默认参数设置方法 function func($x=2,$y=1,$z=0)/正确的默认参数设置方法 function func($x=2,$y=1,$x)/错误的默认参数设置方法 function func($x=0,$y=1,$z)/错误的默认参数设置方法 4.2.2 函数的参数 【示例4-3】演示为a

6、dd函数设置默认参数后的运行效 果。 在调用的时候传入的参数即为实际参数,它会从左向 右依次传入函数的参数列表,设置默认值的参数将被 替换。4.2.3 参数的传递 参数的传递类似于变量的赋值。PHP参数传递方式分 为按值传递和按引用传递。类似的,按值传递将传递 实际参数的副本,而引用传递则传递实际参数本身。4.2.3 参数的传递【示例4-4】以下代码演示使用按值传递方式交换两个数值。 从运行结果我们可以很明显看出,变量的值并没有被交换。而在函数内部确实实现了变量值的交换 ,我们可以通过以下代码来验证: 01$x=$x$y=$y“; /输出交换前的变量值 04$temp=$x; 05$x=$y;

7、 06$y=$temp; 07echo “交换后:$x=$x$y=$y“; /输出交换后的变量值 08 09swap(5,15); /调用函数并传入参数 10? 以上代码的运行结果。4.2.3 参数的传递 从以上输出函数内部交换过程的运行结果来看,在函 数内部确实成功交换了变量的值。这就再次证实了按 值传递方式中函数操作的是实际参数的副本。类似于 变量的赋值,我们同样可以将变量的本身作为参数传 递给函数体,这类函数定义的方式如下所示: function 函数名( return 返回值; 4.2.3 参数的传递 【示例4-5】以下代码演示将变量本身传递给交换变量 值的函数。 从运行结果我们可以看

8、出,函数成功交换了变量的 值。4.2.4 变量的作用域 变量的作用域即变量可使用的范围。函数中变量的作 用是即整个函数体内,因此在函数内部与外部的同名 变量是不同的。 【示例4-6】演示在函数内和函数外定义同名变量并输 出他们的和。 在代码中我们可以看到函数内和函数外的变量是不同 的,否则函数外部输出结果也将是5而不是20。 【示例4-7】代码试图输出函数中的变量。 代码在运行后输出了一个变量为定义的提示,这就证 明了在函数外部不能够读取到函数内部定义的变量。1.全局变量 如果需要在函数中使用函数外的变量那么就需要使用 global来声明一个全局变量,它的一般形式如下所示: global 变量

9、1,变量2,变量3 【示例4-8】演示使用global关键字来使用函数外部变 量。 从运行结果我们可以看到,虽然在函数中并没有定义 变量a,但是调用函数时仍然输出了变量a的值,这就 是global定义的作用。2.静态变量 变量作用域的另一个体现就是静态变量。静态变量可以使 函数中的变量状态保留而不会被销毁。首先看一段不使用 静态变量的示例。 【示例4-9】演示调用不使用静态变量的函数。 以上输出结果证明了三次调用函数均输出1,也就是说函数 中的变量a的值在每次调用中均会被初始化。 静态变量使用static关键字定义,形式如下所示: static 变量名=初始值; 【示例4-10】演示使用sta

10、tic定义静态变量。 以上代码仅在示例4-9的基础上定义了静态变量,但是输出 结果却是不同的,这就是因为静态变量的状态会被保留因 而可以实现递增。4.3 函数的其他使用方法 变量除了上一小节中讲解的常用使用方法之外,还有 一些其他的使用方法,包括函数的递归调用、可变函 数、匿名函数和函数的引用返回。下面我们就来学习 这些使用方法。4.3.1 可变函数 可变函数是指以一个变量作为函数名来调用函数。因 此同样的形式会随着变量值的改变而调用不同的函数 ,常用的形式如下所示: $variable() 【示例4-11】演示可变函数的使用方法。4.3.2 函数的引用返回 函数的引用返回常用于使函数内的变量

11、与函数外的变量建 立联系,因而可以通过读取或者修改函数外变量的值来读 取或者修改函数内的变量的值。引用返回的函数形式如下 所示: function return 返回值; 【示例4-12】演示函数的引用返回的使用。 从运行结果我们可以看到,函数在外部就实现了静态变量a 从3到16的跨越却只需要进行一次赋值。而不使用引用返回 想要达到同样的结果就需要多次重复调用函数。4.3.3 函数的递归调用 函数的递归调用即在函数体内调用函数自身。通常的 形式如下所示: function func_name() ; func_name(); ; 4.3.3 函数的递归调用 下面就通过一个简单的题目来学习本节的

12、知识,题目 如下:初始情况下有一个细胞,它每2分钟会分裂出1 个细胞。新生细胞有1分钟的成熟期,成熟后的细胞每 2分钟会分裂出一个细胞。我们就来设计程序计算15分 钟后共有多少细胞。 【示例4-13】以下代码演示使用递归计算以上题目。 递归调用是比较耗费系统资源的,虽然15分钟的细胞 数可以很容易地计算出来,但是计算一个比较长的时 间浏览器通常会响应比较长的时间。4.3.4 匿名函数 匿名函数也称为闭包函数,它是一个没有函数名的函数, 通常会作为回调函数的参数,它的形式如下所示: function (参数列表) 语句; 匿名函数也可以与一个变量绑定,常用形式如下所示: $varable = function (参数列表) 语句; 匿名函数作为回调函数参数的知识我们不在这里讲解,下 面我们就以匿名函数与变量绑定的形式来学习。4.3.4 匿名函数 【示例4-14】演示匿名函数与变量绑定。 在将匿名函数与变量绑定的时候需要注意在匿名函数 结尾需要以分号结束,这类似于为变量赋值。4.4 小结 本章主要讲解了PHP函数部分的知识,包括使用函数 的优势以及详细讲解了函数的各种使用方法。让读者 使用函数时候基本没有盲点。函数的递归调用是初学 者比较难掌握的知识,读者现在无需完全理解递归, 递归的知识将在不断的学习和实践中会逐渐深入理 解。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车维修/保养

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号