PHP教程课件:PHP函数_第1页
PHP教程课件:PHP函数_第2页
PHP教程课件:PHP函数_第3页
PHP教程课件:PHP函数_第4页
PHP教程课件:PHP函数_第5页
已阅读5页,还剩22页未读, 继续免费阅读

下载本文档

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

文档简介

PHP函数函数自定义函数变量的范围函数的参数传递变量函数递归代码重用自定义函数函数的定义:

函数(function)是一段完成指定任务的已命名代码,函数可以遵照给它的一组值或参数完成任务,并且可能返回一个值。使用函数可以节省编译时间,因为无论调用多少次,函数只需被编译一次。函数的优越性:控制程序设计的复杂性提高软件的可靠性提高软件的开发效率提高软件的可维护性提高程序的重用性自定义函数语法格式:

function函数名称(参数1,参数2…)

{

程序内容叙述;

return返回值;//如需函数有返回值时使用; }函数的使用:函数名称(参数1,参数2…);自定义函数的名称:

它是函数在程序代码中的识别名称,函数名可以是以字母或下划线开头后跟零个或多个字母、下划线和数字的任何字符串。函数名不区分大小写。命名函数时不可使用已声明的函数,或PHP内建的函数名称。参数: 所谓的参数就是用来把数值由函数外部传入函数体中,并用来加以运算处理。参数之间用“,”号隔开。当函数不需要任何数值传入时,可以省略参数。返回值: 当调用函数时需要它返回一些数值,那么就要函数体中用return语句实现。格式如下:

return返回值;//返回值也可以是一个表达式

exit();//无返回值void实例:<?php echo“用函数求累加:<br>"; functiontest($a) { $sum=0; for($i=0;$i<=$a;$i++) $sum+=$i; return$sum; } echo"50的累加是:".test(50)."<br>"; echo"100的累加是:".test(100)."<br>";?>判断函数是否存在在PHP中,函数可以在被调用之前定义,也可以在被调用之后定义。function_exists()判断函数是否存在。变量的范围当主程序调用函数时,PHP会暂时停止目前主要程序流程的运行,并传递必要的运算参数给目标函数使用,以执行函数的程序码片段。在函数执行结束后,函数会回传执行结果所得的数值,并将执行流程转回原本主程序中断的地方,继续执行运作。变量的能见度所谓变量的能见度,意指变量在程序中的可作用范围。当一个变量执行赋值动作后,会随着声明局部的差异,而有不同的作用范围。大致上来说变量会依据声明的局部分为下列两种:局部变量和全局变量局部变量在函数之中声明的变量就是局部变量,并且该变量只有在函数范围之中才能加以使用。如果其它程序局部需要调用使用该变量值时,必须透过「return」指令,来将其传回至主程序区块以作后续处理。<?php $A=0;functionprint_A(){$A=3; //定义局部变量

echo"在函数中显示局部变量A值:$A<p>"; return$A;}$B=print_A(); echo"在函数外显示局部变量A值:$B<br>"; echo$A;?>全局变量在函数范围之外所声明的变量就是全局变量。由于函数可以视为单独的程序片段,所以局部变量会复盖全局变量的能见度,因此在函数中并无法直接调用使用全局变量。函数中若要使用全局变量时,必须要利用global关键字定义目标变量,以告诉函数主体此变量为全局。

<?php $A=“Hello!!”;

//定义全局变量 functionprint_A(){

//定义函数print_A()

global$A;

//利用global关键字声明变量A为全局变量 echo$A; } print_A();

?>也可以使用预定义的全局变量数组$GLOBALS.这是一个特殊变量在程序运行时自动创建。echo$GLOBALS[“A”];注意事项在函数中声明全局变量时,其名字要与全局变量一致通过unset($var)可以手动删除变量,变量会在内存中被释放,也就不在全局作用域中了。使用require与include包含不会影响作用域通过参数列表传递给函数的变量,对于函数来说是局部变量,除非在传递时带有&引用符号静态变量

PHP支持声明函数变量为静态的(static)。一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调用时被初始化。要声明函数变量为静态的用关键字static。通常,静态变量的第一次使用时赋予一个初始值。

<?php

functionTest(){

static

$a=0;

echo$a;

$a++;

}

?>参数的传递 在了解变量的能见度之后,接着来看看函数中的参数如何传递。所谓的参数传递,其实就是在执行函数前导入某些数值,以提供函数处理执行。PHP中传递参数的方式有:按值传递参数父程序直接传递指定的值或是变量给函数使用。由于所传递的值或变量,与函数里的数值分别储存于不同的内存区块,所以当函数对所导入的数值作了任何变动时,并不会对父程序造成直接影响。 按址传递参数(用“&”符号实现)相对于按值传递模式,并不会将父程序中的指定数值或目标变量传递给函数,而是把该数值或变量的内存储存区块相对地址导入函数之中。因此当该数值在函数中有任何变动时,会连带对父程序造成影响。

<?php$A="Today";$B="Monday";functionprint_A($A,&$B) { $B=$A."is".$B; echo"函数中变量A与变量B的值为<br>"; echo"变量A:$A<br>"; echo"变量B:$B<p>";}//以传址方式导入变量Bprint_A($A,$B);echo"主程序中变量A与变量B的值为<br>";echo"变量A:$A<br>";echo"变量B:$B<p>"; ?>默认参数

在php中,支持函数的默认方式调用。如果在调用函数时没有指定参数的值,在函数中会使用参数的默认值。默认参数必须列在所有没有默认值参数的后面。

<?php functionfun_sum($a,$b=0,$c=0) { return$a+$b+$c; } echofun_sum(10,20); echofun_sum(10,20,30); ?>任意数量的参数列表通常,用户定义函数时,设置的参数数量是有限的。如果希望函数可以接受任意数量的参数,需使用以下函数:func_get_args()//返回一个数组,包含所有参数func_num_args()//返回参数总数func_get_arg()//接收一个数字参数,返回指定参数变量函数

PHP支持变量函数的概念。这意味着如果一个变量名后有圆括号,PHP将寻找与变量的值同名的函数,并且将尝试执行它。除了别的事情以外,这个可以被用于实现回调函数,函数表等等。变量函数不能用于语言结构,例如echo(),print(),unset(),isset(),empty(),include(),require()以及类似的语句。需要使用自己的外壳函数来将这些结构用作变量函数。

实例:<?php

functionfoo(){

echo"Infoo()<br/>\n";

}

functionbar($arg=''){

echo"Inbar();argumentwas'$arg'.<br/>\n";

}

//Thisisawrapperfunctionaroundecho

functionechoit($string){

echo$string;

}

$func='foo';

$func();

//Thiscallsfoo()

$func='bar';

$func('test');

//Thiscallsbar()

$func='echoit';

$func('test');

//Thiscallsechoit()?>递归调用所谓的函数递归调用,就是函数可以在其声明的执行叙述之中调用执行自己。通常在此类型的函数之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定条件下终止函数的递归调用动作,把目前流程的主控权交回上一层函数执行。因此当某个执行递归调用的函数,没有附加条件判断叙述时可能会造成无限循环的错误情形.函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序,并且能以这种特性来执行一些较为复杂的运算动作。

实例:用递归求n阶乘

<?php echo"利用递归调用来运算N的阶乘<p>"; functionfacto($n) {

if($n>1){$r=$n*facto($n-1);} else{ $r=$n;} return$r;}echo"当N值为5时,阶乘为:".facto(5)."<br>";echo"当N值为10时,阶乘为:".facto(10);?>求n=4时阶乘递归程序的执行过程内部函数就是在函数里面还可以定义函数functiondemo(){functiontest(){}functionfun(){}}代码重用通过重复使用已有的代码,提高开发效率,降低成本

include()和require()函数。

require()将一个文件在预处理期间被导入,像把该文件粘贴到使用函数的地方。

include()与require()几乎等价,区别在于在脚本执行时包含,当处理失败时,include()产生一个警告而require()则导致一个致命错误。include_once()和requi

温馨提示

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

最新文档

评论

0/150

提交评论