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

下载本文档

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

文档简介

1、第第6章章 自定义函数的使用自定义函数的使用 本章知识点本章知识点p6.1 6.1 创建和调用函数创建和调用函数 p6.2 6.2 参数和返回值参数和返回值 p6.3 6.3 函数库函数库 6.1 创建和调用函数创建和调用函数 p 6.1.1 创建自定义函数 p 6.1.2 6.1.2 创建表创建表 p 6.1.3 6.1.3 查看和管理表中的数据查看和管理表中的数据p 6.1.4 6.1.4 查看表的磁盘空间信息查看表的磁盘空间信息 p 6.1.5 6.1.5 修改表修改表 p 6.1.6 6.1.6 删除表删除表 6.1.1 创建自定义函数 p可以使用可以使用functionfunctio

2、n关键字来创建关键字来创建PHPPHP自定自定义函数,其基本语法结构如下:义函数,其基本语法结构如下:function 函数名函数名 (参数列表参数列表) 函数体函数体【例【例6-1】 p 创建一个非常简单的函数创建一个非常简单的函数PrintWelcomePrintWelcome,它的功能是打印字符串它的功能是打印字符串“欢迎使用欢迎使用PHP”PHP”,代码如下:,代码如下:function PrintWelcome() echo(欢迎使用欢迎使用PHP); 【例【例6-2】 p 创建函数创建函数PrintString()PrintString(),通过参数决,通过参数决定要打印的内容。定

3、要打印的内容。function PrintString($str) echo($str);p 变量变量$str$str是函数的参数。在函数体中,是函数的参数。在函数体中,参数可以像其他变量一样被使用。参数可以像其他变量一样被使用。p 可以在函数中定义多个参数,参数之间可以在函数中定义多个参数,参数之间使用逗号分隔。使用逗号分隔。【例【例6-3】 p定义一个函数定义一个函数sum()sum(),用于计算并打印两个参数,用于计算并打印两个参数之和。函数之和。函数sum()sum()包含两个参数。参数包含两个参数。参数$num1$num1和和$num2$num2,代码如下:,代码如下:functio

4、n sum($num1, $num2) echo($num1 + $num2);6.1.2 调用函数调用函数 p【例【例6-46-4】 要调用要调用PrintWelcome()PrintWelcome()函数,函数,显示显示“欢迎使用欢迎使用PHP”PHP”字符串,代码如下:字符串,代码如下:【例【例6-5】 p要调用要调用PrintString()PrintString()函数,打开用户函数,打开用户指定的字符串,代码如下:指定的字符串,代码如下:【例【例6-6】 p调用调用sum()sum()函数,计算并打印函数,计算并打印100100和和3 3之和,之和,代码如下:代码如下:6.1.3

5、变量的作用域变量的作用域 p在函数中也可以定义变量,在函数中定义的变量在函数中也可以定义变量,在函数中定义的变量被称为局部变量。局部变量只在定义它的函数内部被称为局部变量。局部变量只在定义它的函数内部有效,在函数体之外,即使使用同名的变量,也会有效,在函数体之外,即使使用同名的变量,也会被看作是另一个变量。相应地,在函数体之外定义被看作是另一个变量。相应地,在函数体之外定义的变量是全局变量。全局变量在定义后的代码中都的变量是全局变量。全局变量在定义后的代码中都有效,包括它后面定义的函数体内。如果局部变量有效,包括它后面定义的函数体内。如果局部变量和全局变量同名,则在定义局部变量的函数中,只和全

6、局变量同名,则在定义局部变量的函数中,只有局部变量是有效的。有局部变量是有效的。【例【例6-7】 p局部变量和全局变量作用域的例子。局部变量和全局变量作用域的例子。?PHP $a = 100;/ 全局变量全局变量function setNumber() $a = 10;/ 局部变量局部变量echo($a);/ 打印局部变量打印局部变量$a setNumber(); echo(); echo($a);/ 打印全局变量打印全局变量$a?p在函数在函数setNumber()setNumber()外部定义的变量外部定义的变量$a$a是全局变量,它在整个是全局变量,它在整个PHPPHP程序程序中都有效。

7、在中都有效。在setNumber()setNumber()函数中也定义了一个变量函数中也定义了一个变量$a$a,它只在函数体,它只在函数体内部有效。因此在内部有效。因此在setNumber()setNumber()函数中修改变量函数中修改变量$a$a的值,只是修改了局的值,只是修改了局部变量的值,并不影响全局变量部变量的值,并不影响全局变量$a$a的内容。运行结果如下:的内容。运行结果如下:10100调试程序调试程序 为了更直观地认识局部变量和全局变量,分别在为了更直观地认识局部变量和全局变量,分别在setNumber()setNumber()函数内函数内部和后面的部和后面的echo($a)e

8、cho($a)语句上设置断点,然后调试程序,并在断语句上设置断点,然后调试程序,并在断点处查看变量点处查看变量$a$a的值。局部变量的值。局部变量$a$a的值如图的值如图6-16-1所示,全局变量所示,全局变量$a$a的值如图的值如图6-26-2所示。所示。 在函数中使用全局变量在函数中使用全局变量 p如果要在函数中使用全局变量,可以使用如果要在函数中使用全局变量,可以使用globalglobal关键字进行声明,方法如下:关键字进行声明,方法如下:p定义全局变量定义全局变量function 函数名函数名(参数列表参数列表) global 全局变量名全局变量名 使用全局变量使用全局变量【例【例6

9、-8】 p对【例对【例6-76-7】进行修改,在】进行修改,在setNumber()setNumber()函数中设置全局变量函数中设置全局变量$a$a的值,代码如下:的值,代码如下:p因为全局变量因为全局变量$a$a在在setNumber()setNumber()函数中被设置为函数中被设置为1010,所以运行,所以运行结果为结果为10。6.1.4 静态变量静态变量 p在函数体内可以定义静态变量,静态变量的作在函数体内可以定义静态变量,静态变量的作用域与局部变量相同,只在定义它的函数体内。用域与局部变量相同,只在定义它的函数体内。与局部变量不同的是,局部变量会在函数结束时与局部变量不同的是,局部

10、变量会在函数结束时被释放,而静态变量的值会被保留下来,下次调被释放,而静态变量的值会被保留下来,下次调用函数时,静态变量的值不会丢失。用函数时,静态变量的值不会丢失。p可以使用可以使用static static 关键字定义静态变量,语法关键字定义静态变量,语法如下:如下:static $变量名变量名 = 初始值初始值;【例【例6-9】 p静态变量的例子。静态变量的例子。?php function test() static $count = 1; echo(第第 . $count .次调用函数次调用函数); $count+ ; for($i=1; $ip运行结果如下:运行结果如下:第第1次调用

11、函数次调用函数第第2次调用函数次调用函数第第3次调用函数次调用函数第第4次调用函数次调用函数第第5次调用函数次调用函数第第6次调用函数次调用函数第第7次调用函数次调用函数第第8次调用函数次调用函数第第9次调用函数次调用函数第第10次调用函数次调用函数p静态变量静态变量$count$count的值在调用函数后被保留。的值在调用函数后被保留。6.1.5 变量函数变量函数 pPHPPHP支持变量函数,即通过变量调用函数。在变量名后面添加支持变量函数,即通过变量调用函数。在变量名后面添加()(),PHPPHP会调用变量值指定的函数。会调用变量值指定的函数。p【例【例6-106-10】 变量函数的例子。

12、变量函数的例子。p?phppfunction foo()pp echo In foo()n;ppfunction bar($arg = )pp echo In bar(); argument was $arg.n;pp/ echo()函数的外壳函数函数的外壳函数pfunction echoit($string)pp echo $string;pp$func = foo;p$func(); / 调用调用foo()p$func = bar;p$func(test); / 调用调用bar()p$func = echoit;p$func(test); / 调用调用echoit()p?提示提示 p变量函

13、数不能用于语言结构,例如变量函数不能用于语言结构,例如 echo()echo()、print()print()、unset()unset()、isset()isset()、empty()empty()、include()include()、require()require()等。如果需要对它们等。如果需要对它们调用变量函数,可以为其定义一个外壳函数,调用变量函数,可以为其定义一个外壳函数,然后调用外壳函数然后调用外壳函数 6.2 参数和返回值6.2.1 6.2.1 在函数中传递参数在函数中传递参数6.2.2 6.2.2 函数的返回值函数的返回值 6.2.1 在函数中传递参数在函数中传递参数1

14、1值传递参数值传递参数2 2引用传递参数引用传递参数3 3参数的默认值参数的默认值 4 4可变长参数可变长参数 1值传递参数值传递参数p默认情况下,默认情况下,PHPPHP实行按值传递参数。值传实行按值传递参数。值传递指调用函数时将常量或变量的值(通常递指调用函数时将常量或变量的值(通常称其为实参)传递给函数的参数(通常称称其为实参)传递给函数的参数(通常称其为形参)。值传递的特点是实参与形参其为形参)。值传递的特点是实参与形参分别存储在内存中,是两个不相关的独立分别存储在内存中,是两个不相关的独立变量。因此,在函数内部改变形参的值时,变量。因此,在函数内部改变形参的值时,实参的值一般是不会改

15、变的。实参的值一般是不会改变的。6.1.26.1.2小节介小节介绍的实例都属于按值传递参数的情况。绍的实例都属于按值传递参数的情况。2引用传递参数引用传递参数p引用传递(按地址传递)的特点是实参与形参共享一块内存。引用传递(按地址传递)的特点是实参与形参共享一块内存。因此,当形参的值改变的时候,实参的值也会相应的做出改变。因此,当形参的值改变的时候,实参的值也会相应的做出改变。从这种角度上来说,可以认为形参和实参是同一个变量。从这种角度上来说,可以认为形参和实参是同一个变量。p在定义引用传递参数时,可以在参数前面加上引用符号在定义引用传递参数时,可以在参数前面加上引用符号& &

16、。p【例【例6-116-11】 一个使用引用传递参数的例子。一个使用引用传递参数的例子。?PHP function printString(&$string) echo($string);$string = 打印完成打印完成!; $str = 测试字符串测试字符串!; printString($str); echo($str);?3参数的默认值参数的默认值 p在在PHPPHP中,可以为函数的参数设置默认值。可以在中,可以为函数的参数设置默认值。可以在定义函数时,直接在参数后面使用定义函数时,直接在参数后面使用“=”=”为其赋值。为其赋值。p【例【例6-126-12】 设置参数默认值的例

17、子。设置参数默认值的例子。?PHP function printString($string = This is a string!) echo($string); printString(); $str = 测试字符串测试字符串! ; printString($str);?4可变长参数可变长参数 PHPPHP还支持可变长度的参数列表。在定义函数时,还支持可变长度的参数列表。在定义函数时,不指定参数。在调用函数时,可以根据需要指不指定参数。在调用函数时,可以根据需要指定参数的数量,通过与参数相关的几个系统函定参数的数量,通过与参数相关的几个系统函数获取参数信息。具体说明如下:数获取参数信息。具

18、体说明如下: func_num_args func_num_args,返回传递给函数的参数数量。,返回传递给函数的参数数量。 func_get_arg func_get_arg,返回传递给函数的参数列表。,返回传递给函数的参数列表。 func_get_args func_get_args,返回一个数组,由函数的参,返回一个数组,由函数的参数组成。数组成。【例【例6-13】 p一个可变长参数的实例。一个可变长参数的实例。?PHP function mysum() $num = func_num_args();echo(函数包含:函数包含: . $num . 个参数个参数);$sum = 0;fo

19、r($i=0; $ip运行结果如下:运行结果如下:函数包含:函数包含:4个参数个参数参数累加之和为:参数累加之和为:10【例【例6-14】 p修改【例修改【例6-136-13】,使用】,使用func_get_argsfunc_get_args函数获取参数信息,代码如下:函数获取参数信息,代码如下:?PHP function sum1() $num = func_num_args();echo(函数包含:函数包含: . $num . 个参数个参数);$sum = 0;$arg_list = func_get_args();for($i=0; $ip运行结果与【例运行结果与【例6-136-13】相

20、同。】相同。6.2.2 函数的返回值函数的返回值 p可以为函数指定一个返回值,返回值可以是任何数据类型,使用可以为函数指定一个返回值,返回值可以是任何数据类型,使用returnreturn语句可以返语句可以返回函数值并退出函数。回函数值并退出函数。p【例【例6-156-15】 对【例对【例6-136-13】中的】中的mysum()mysum()函数进行改造,通过函数的返回值返回累加函数进行改造,通过函数的返回值返回累加结果,代码如下:结果,代码如下:?PHP function mysum() $num = func_num_args();echo(函数包含:函数包含: . $num . 个参数

21、个参数n);$sum = 0;$arg_list = func_get_args();for($i=0; $ip运行结果如下:运行结果如下:函数包含:函数包含:4个参数个参数计算结果为:计算结果为:10【例【例6-16】 p下面程序中的下面程序中的mysquare()mysquare()函数返回参数列表中所有参数的平方值。函数返回参数列表中所有参数的平方值。?PHP function mysquare() $num = func_num_args();$sum = 0;$arg_list = func_get_args();for($i=0; $ip程序将参数值计算平方值,保存在数组程序将参数

22、值计算平方值,保存在数组$arg_list$arg_list中,然后将数组中,然后将数组$arg_list$arg_list作作为函数的返回值。使用为函数的返回值。使用print_r()print_r()函数打开函数打开mysquare()mysquare()函数的返回结果,内容函数的返回结果,内容如下:如下:Array ( 0 = 1 1 = 4 2 = 9 3 = 16 ) 6.3 函数库函数库 p6.3.1 6.3.1 定义函数库定义函数库p6.3.2 6.3.2 引用函数库引用函数库 6.3.1 定义函数库定义函数库p 函数库是一个函数库是一个.php.php文件,其中包含函数的定义。文件,其中包含函数的定义。p 【例【例6-176-17】 创建一个函数库创建一个函数库mylib.phpmylib.php,其中包含,其中包含2 2个函数个函数PrintString()PrintString()和和sum()sum(),代码如下:,代码如下:p 6.3.2 引用函数库引用函数库 p 可以使用可以使用include()include()函数引用函数引用PHPPHP函数库,语法如下:函数库,语法如下:p include(include(函数库文件函数

温馨提示

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

评论

0/150

提交评论