PHP第6章自定义函数的使用_第1页
PHP第6章自定义函数的使用_第2页
PHP第6章自定义函数的使用_第3页
PHP第6章自定义函数的使用_第4页
PHP第6章自定义函数的使用_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP和MySQLWeb开发授课教师:职务:第6章自定义函数的使用课程描述函数〔function〕由假设干条语句组成,用于实现特定的功能。函数包含函数名、假设干参数和返回值。一旦定义了函数,就可以在程序中需要实现该功能的位置调用该函数,给程序员共享代码带来了很大方便。在PHP语言中,除了提供丰富的系统函数〔本书前面已经介绍了一下常用的系统函数〕外,还允许用户创立和使用自定义函数。本章知识点6.1创立和调用函数6.2参数和返回值6.3函数库6.1创立和调用函数6.1.1创立自定义函数6.1.2创立表6.1.3查看和管理表中的数据6.1.4查看表的磁盘空间信息6.1.5修改表6.1.6删除表6.1.1创立自定义函数可以使用function关键字来创立PHP自定义函数,其根本语法结构如下:function函数名(参数列表){函数体}【例6-1】创立一个非常简单的函数PrintWelcome,它的功能是打印字符串“欢送使用PHP”,代码如下:functionPrintWelcome(){echo("欢送使用PHP");}【例6-2】创立函数PrintString(),通过参数决定要打印的内容。functionPrintString($str){echo("$str");}变量$str是函数的参数。在函数体中,参数可以像其他变量一样被使用。可以在函数中定义多个参数,参数之间使用逗号分隔。【例6-3】定义一个函数sum(),用于计算并打印两个参数之和。函数sum()包含两个参数。参数$num1和$num2,代码如下:functionsum($num1,$num2){echo($num1+$num2);}6.1.2调用函数【例6-4】要调用PrintWelcome()函数,显示“欢送使用PHP”字符串,代码如下:<?PHPfunctionPrintWelcome(){echo("欢送使用PHP");} PrintWelcome();?>【例6-5】要调用PrintString()函数,翻开用户指定的字符串,代码如下:<?PHPfunctionPrintString($str){echo("$str");} PrintString("传递参数");?>【例6-6】调用sum()函数,计算并打印100和3之和,代码如下:<?PHPfunctionsum($num1,$num2){ echo($num1+$num2);} sum(100,3);?>6.1.3变量的作用域在函数中也可以定义变量,在函数中定义的变量被称为局部变量。局部变量只在定义它的函数内部有效,在函数体之外,即使使用同名的变量,也会被看作是另一个变量。相应地,在函数体之外定义的变量是全局变量。全局变量在定义后的代码中都有效,包括它后面定义的函数体内。如果局部变量和全局变量同名,那么在定义局部变量的函数中,只有局部变量是有效的。【例6-7】局部变量和全局变量作用域的例子。<?PHP$a=100; //全局变量 functionsetNumber(){ $a=10; //局部变量 echo($a); //打印局部变量$a } setNumber();echo("<BR>"); echo($a); //打印全局变量$a?>在函数setNumber()外部定义的变量$a是全局变量,它在整个PHP程序中都有效。在setNumber()函数中也定义了一个变量$a,它只在函数体内部有效。因此在setNumber()函数中修改变量$a的值,只是修改了局部变量的值,并不影响全局变量$a的内容。运行结果如下:10100调试程序为了更直观地认识局部变量和全局变量,分别在setNumber()函数内部和后面的echo($a)语句上设置断点,然后调试程序,并在断点处查看变量$a的值。局部变量$a的值如图6-1所示,全局变量$a的值如图6-2所示。

在函数中使用全局变量如果要在函数中使用全局变量,可以使用global关键字进行声明,方法如下:定义全局变量function函数名(参数列表){global全局变量名使用全局变量}【例6-8】对【例6-7】进行修改,在setNumber()函数中设置全局变量$a的值,代码如下:<?PHP$a=100; //全局变量 functionsetNumber(){ global$a;//指定全局变量$a在函数setNumber() $a=10; //设置全部变量$a的值,而不是局部变量 } setNumber(); echo($a); //打印全局变量$a?>因为全局变量$a在setNumber()函数中被设置为10,所以运行结果为10。6.1.4静态变量在函数体内可以定义静态变量,静态变量的作用域与局部变量相同,只在定义它的函数体内。与局部变量不同的是,局部变量会在函数结束时被释放,而静态变量的值会被保存下来,下次调用函数时,静态变量的值不会丧失。可以使用static关键字定义静态变量,语法如下:static$变量名=初始值;【例6-9】静态变量的例子。<?phpfunctiontest(){static$count=1;echo("第".$count."次调用函数<br/>");$count++;}for($i=1;$i<11;$i++){test();}?>运行结果如下:第1次调用函数第2次调用函数第3次调用函数第4次调用函数第5次调用函数第6次调用函数第7次调用函数第8次调用函数第9次调用函数第10次调用函数静态变量$count的值在调用函数后被保存。6.1.5变量函数PHP支持变量函数,即通过变量调用函数。在变量名后面添加(),PHP会调用变量值指定的函数。【例6-10】变量函数的例子。<?phpfunctionfoo(){echo"Infoo()<br>\n";}functionbar($arg=''){echo"Inbar();argumentwas'$arg'.<br>\n";}//echo()函数的外壳函数functionechoit($string){echo$string;}$func='foo';$func();//调用foo()$func='bar';$func('test');//调用bar()$func='echoit';$func('test');//调用echoit()?>提示变量函数不能用于语言结构,例如echo()、print()、unset()、isset()、empty()、include()、require()等。如果需要对它们调用变量函数,可以为其定义一个外壳函数,然后调用外壳函数6.2参数和返回值6.2.1在函数中传递参数6.2.2函数的返回值6.2.1在函数中传递参数1.值传递参数2.引用传递参数3.参数的默认值4.可变长参数1.值传递参数默认情况下,PHP实行按值传递参数。值传递指调用函数时将常量或变量的值〔通常称其为实参〕传递给函数的参数〔通常称其为形参〕。值传递的特点是实参与形参分别存储在内存中,是两个不相关的独立变量。因此,在函数内部改变形参的值时,实参的值一般是不会改变的。小节介绍的实例都属于按值传递参数的情况。2.引用传递参数引用传递〔按地址传递〕的特点是实参与形参共享一块内存。因此,当形参的值改变的时候,实参的值也会相应的做出改变。从这种角度上来说,可以认为形参和实参是同一个变量。在定义引用传递参数时,可以在参数前面加上引用符号&。【例6-11】一个使用引用传递参数的例子。<?PHPfunctionprintString(&$string){ echo($string); $string="打印完成!";}$str="测试字符串!<BR>";printString($str);echo($str);?>3.参数的默认值在PHP中,可以为函数的参数设置默认值。可以在定义函数时,直接在参数后面使用“=”为其赋值。【例6-12】设置参数默认值的例子。<?PHPfunctionprintString($string="Thisisastring!"){ echo($string);}printString();$str="<BR>测试字符串!";printString($str);?>4.可变长参数PHP还支持可变长度的参数列表。在定义函数时,不指定参数。在调用函数时,可以根据需要指定参数的数量,通过与参数相关的几个系统函数获取参数信息。具体说明如下:

func_num_args,返回传递给函数的参数数量。

func_get_arg,返回传递给函数的参数列表。

func_get_args,返回一个数组,由函数的参数组成。【例6-13】一个可变长参数的实例。<?PHPfunctionmysum(){ $num= func_num_args(); echo("函数包含:".$num."个参数<br>"); $sum=0; for($i=0;$i<$num;$i++){ $sum=$sum+func_get_arg($i); } echo("参数累加之和为:".$sum);}mysum(1,2,3,4);?>运行结果如下:函数包含:4个参数参数累加之和为:10【例6-14】修改【例6-13】,使用func_get_args函数获取参数信息,代码如下:<?PHPfunctionsum1(){ $num= func_num_args(); echo("函数包含:".$num."个参数<br>"); $sum=0; $arg_list=func_get_args(); for($i=0;$i<$num;$i++){ $sum=$sum+$arg_list[$i]; } echo("参数累加之和为:".$sum);}sum1(1,2,3,4);?>运行结果与【例6-13】相同。6.2.2函数的返回值可以为函数指定一个返回值,返回值可以是任何数据类型,使用return语句可以返回函数值并退出函数。【例6-15】对【例6-13】中的mysum()函数进行改造,通过函数的返回值返回累加结果,代码如下:<?PHPfunctionmysum(){ $num= func_num_args(); echo("函数包含:".$num."个参数\n"); $sum=0; $arg_list=func_get_args(); for($i=0;$i<$num;$i++){ $sum=$sum+$arg_list[$i]; } return$sum;}echo("计算结果为:".mysum(1,2,3,4));?>运行结果如下:函数包含:4个参数计算结果为:10【例6-16】下面程序中的mysquare()函数返回参数列表中所有参数的平方值。<?PHPfunctionmysquare(){ $num= func_num_args(); $sum=0; $arg_list=func_get_args(); for($i=0;$i<$num;$i++){ $arg_list[$i]=$arg_list[$i]*$arg_list[$i]; } return$arg_list;}print_r(mysquare(1,2,3,4));?>程序将参数值计算平方值,保存在数组$arg_list中,然后将数组$arg_list作为函数的返回值。使用print_r()函数翻开mysquare()函数的返回结果,内容如下:Array([0]=>1[1]=>4[2]=>9[3]=>16)6.3函数库6.3.1定义函数库6.3.2引用函数库6.3.1定义函数库函数库是一个.php文件,其中包含函数的定义。【例6-17】创立一个函数库mylib.php,其中包含2个函数PrintString()和sum(),代码如下:<?PHP//mylib.php函数库//打印字符串functionPrintString($str){echo("$str");}//求和functions

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论