已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章PHP中的函数,什么是函数?函数(function)是一段完成指定任务的已命名代码,函数可以遵照给它的一组值或参数(parameter)完成任务,并且可能返回一个值。函数节省了编译时间,无论调用函数多少次,函数都只需为页面编译一次。函数允许你在一处修改任何错误,而不是在每个执行任务的地方修改,这样就提高了程序的可靠性,并且将完成指定任务的代码一一隔离,也提高了程序的可读性。本讲介绍函数调用和函数定义的语法,并且讨论如何管理函数中的变量以及想函数中传递值(包括按值传递和按引用传递),也介绍了可变函数和匿名函数。,一、调用函数,PHP程序中的函数(内置或者是自定义)不管他们的源代码是怎样的,所有的函数都用相同的方法求值:$some_value=function_name(parameter,.);,函数要求的参数个数因函数的不同而不同。提供给函数的参数可以是任何有效的表达式,并且必须指定参数在函数中预期的顺序。函数的文档将告诉你函数期望什么样的参数,以及你可以预期返回什么样的值。,下面是一些内置函数的例子:,/strlen()是返回字符串长度的内置函数$length=strlen(“php”)/此时$length为3/sin()和asin()是数学正弦和反正弦函数$result=sin(asin(1);/$result是arcsin(1)的正弦/unlink()删除一个文件$result=unlink(“functions.txt”);/如果不成功则为false,在第一个例子中给函数strlen()一个参数“PHP”,该函数返回给定字符串中的字符数。在这里,返回值3被赋给变量$length。这是最简单和最普通的使用函数的方法。第二个例子传递asin(1)的结果给函数sin()。因为正弦和反正弦函数互为反函数,所以对任何值的反正弦求正弦值将总是返回和原来相同的值。,在最后一个例子中给函数unlink()一个文件名,以尝试删除该文件,与许多函数一样,操作失败时该函数返回false。这个例子允许使用另一个内置函数die()和逻辑操作符的短路属性。,二、定义函数,要定义一个函数,可以使用下面的语法结构:function,;echo希望明天下雨;echo函数还没有被调用呢!;foo();/开始调用该函数echo函数调用成功!;?,实例:,三、函数中变量的作用域,函数foo()中变量$a和外部变量$a是两个不同的变量,尽管foo()使用了相加赋值操作符,但是外部的$a的值在一页的生命周期中始终是3。而且函数中的$a的值为2。,四、函数参数,通过函数定义进行声明,函数可以有任意数目的参数。有两种不同的为函数传递参数的方法。第一种也是最普遍的一种就是按值(value)传递,另一种是按引用(reference)传递。,(一)按值传递参数,大多数情况是按值传递参数,参数可以是任何形式有效的表达式。计算表达式的值,并且将结果赋值给函数中适当的变量。,(二)按引用传递参数,按引用传递参数允许你忽略普通的作用域规则,而给出一个直接访问变量的功能。要按引用传递,参数必须是变量;在参数列表中的变量名前家上一个,默认情况下,值是复制出的函数。如果一个函数在它名字之前用function/改变$name1,四、可变函数以及匿名函数,(一)可变函数因为有可变的变量,所以可以基于变量值调用函数。例如,考虑这种情况,一个变量被用于决定三个函数之中哪一个被调用:,switch($which)casefirst:first();break;casesecond:second();break;casethird:third();break;,(二)匿名函数一些PHP的函数用你提供的函数来完成他们的部分工作。例如,函数usort()使用你创建的函数,并将其作为参数传递给它来确定一个数组中各项的排序顺序。如前所示,尽管可以为这样的目的定义一个函数,但是这些函数倾向于局部化和临时性,为了反映回调的短暂特性,我们创建和使用一个匿名函数(anonymousfunction)。,可以用create_function()创建一个匿名函数。这个函数带两个参数,第一个参数描述该匿名函数接受的参数,第二个参数是实际的代码。以下代码将返回为该函数随机产生的名字:$func_name=create_function(args_string,code_string);下面是一个展示使用usort()的例子:,通过usort()(使用匿名函数)按字符串的长度顺序对该数组进行排序。,$lambda=create_function($a,$b,return(strlen($a)-strlen($b););$array=array(reallylongstringhere,boy,this,middlinglength,larger);usort($array,$lambda);print_r($array);,PHP的自定义函数,函数定义的一般形式functionfun_name($arg1,$arg2,$argN)statements;return$ret_val;函数中可以使用任何有效的PHP代码,甚至是其他的函数或类的定义返回值函数通过return语句返回结果,返回值可以是任何类型的,包括列表、对象。函数不能直接返回多个值,但可以通过返回列表的方式实现。参数外部信息通过参数表传递给函数。Php支持值传递方式(默认方式),也支持地址传递方式。可以定义形式参数为变量参数,也可以直接传变量地址,函数体。是实现某种功能的语句的有序集合。,函数的返回值,常量、变量,均为值传递。即传递后不改变传递的信息本身。,通过使用变量参数的方式进行地址传递,方法是在引用的变量前加上符号functionadd_item($artnr,$num)$this-items$atrnr+=$num;functionremove_item($artnr,$num)if($this-item$artnr$num)$this-item$artnr-=$num;returntrue;elsereturnfalse;,示例2ClassDataVar$item;$cname;$cage;functionadd_item($name,$age,$num)$this-item$num=$num;$this-cname$num=$name;$this-cage$num=$age;functionremove_ite
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 月党员个人工作总结
- 弹性理论第8章产品差异化与价值创
- 2026年西部计划志愿者招录笔试综合测试题及答案
- 2026年三大运营商行测通信专业校招刷题题库及答案
- 2026年局域网搭建IP地址配置模拟试卷及答案
- 2026年护林员巡护扑救技能模拟试卷及答案
- 2026年高职单招英语综合测试试题与完整答案
- 2026年GNSS卫星定位测量技术应用培训题库及答案
- 2025年钢结构设计院钢结构专业招聘笔试试题(含答案)
- 城市生活垃圾收运处置安全管控工作方案
- 2026年秋季小学道德与法治五年级上册(新教材)教学计划
- 2026年中级会计职称·中级会计实务 历年真题解析
- 2026年党纪学习教育知识测试模拟试题及答案
- 甘肃省文物局直属事业单位笔试真题2025
- 2026-2027学年冀人版(2026秋新版)小学科学五年上册(全册)教学设计(附目录p130)
- 《八仙》主题开学第一课课件:八仙过海显神通、共筑新学期成长梦
- 江西赣州文化传媒集团有限责任公司招聘笔试题库2026
- 外协加工控制程序
- 《方帽子店》教案(2课时)-2026-2027学年统编版(新教材)小学语文四年级上册
- 新版2025~2026学年(部编版)五年级上学期语文教案(全册)
- 2025年西藏自治区昌都市事业单位人员招聘考试试题及答案详解
评论
0/150
提交评论