php函数返回关键字(PHP七天系列之函数编程)PHP函数 / PHP函数返回值处理技巧...

wufei123 发布于 2024-02-17 阅读(74)

函数(function)是一段完成指定任务的已命名代码,函数可以遵照给它的一组值或参数完成任务,并且可能返回一个值使用函数可以节省编译时间,因为无论调用多少次,函数只需被编译一次函数的特性:控制程序设计的复杂性。

提高软件的可靠性提高软件的开发效率提高软件的可维护性提高程序的重用性函数语法function函数名称(参数1,参数2…){//程序业务内容 return返回值;//如需函数有返回值时使用,否则函数返回值为null

php函数返回关键字(PHP七天系列之函数编程)PHP函数 / PHP函数返回值处理技巧...

}函数名称它是函数在程序代码中的识别名称,函数名可以是以字母或下划线开头后跟零个或多个字母、下划线和数字的任何字符串函数名不区分大小写命名函数时不可使用已声明的函数,或PHP内建的函数名称返回值当调用函数时需要它返回一些数值,那么就要函数体中用return语句实现。

格式如下:return返回值;//返回值也可以是一个表达式 如果函数中没有使用return返回值时则函数返回值为null函数检测function_exists 用于检测函数是否定义//检测pfinal这个函数是否定义:

var_dump(function_exists(pfinal));命名空间使用命名空间可以将函数声明在指定空间,防止函数重名引起冲突下面是定义 User.php 与 Article.php 两个文件内容如下:。

User.php 文件内容namespaceUser;functionshow(){echo__NAMESPACE__.\\.__FUNCTION__.;}Article.php 文件内容namespace

User;functionshow(){echo__NAMESPACE__.\\.__FUNCTION__.;}在 Test.php 使用includeUser.php;includeArticle.php

;User\show();Article\show();使用命名空间后就可以定义相同名称的函数了参数传递按值传递参数父程序直接传递指定的值或是变量给函数使用由于所传递的值或变量,与函数里的数值分别储存于不同的内存区块,所以当函数对所导入的数值作了任何变动时,并不会对父程序造成直接影响。

按址传递参数(用“&”符号实现)相对于按值传递模式,并不会将父程序中的指定数值或目标变量传递给函数,而是把该数值或变量的内存储存区块相对地址导入函数之中因此当该数值在函数中有任何变动时,会连带对父程序造成影响。

functionmake(&$num){return++$num;}$a=1;make($a);echo$a;点语法当传递的参数数量确定时,可以使用…与变量名函数的所有参数会成为变量的数组元素function。

sum(...$args){returnarray_sum($args);}echosum(1,2,3);参数默认值php支持函数的默认方式调用如果在调用函数时没有指定参数的值,在函数中会使用参数的默认值。

默认参数必须列在所有没有默认值参数的后面functionmobile($tel,$num=4,$fix=*){returnsubstr($tel,0,-1*$num).str_repeat($fix,$num

);}echomobile(11122222121,3);严格模式在文件头部定义declare(strict_types=1) 为严格模式,这样会对函数参数类型进行严格约束// 必须定义在文件头declare。

(strict_types=1);//参数必须为int类型 functionhandle(int...$num){returnarray_sum($num);}try{//参数类型错误抛出异常 echo

handle(1,2,3);}catch(\Throwable$th){echo$th->getMessage();}返回值类型PHP7中我们可以设置函数允许的返回值类型functionmake():int

{returnPFinal社区;}try{make();}catch(\Throwable$th){echo$th->getMessage();}如果设置 ?int 表示返回类型为 int 或 null

functionmake():?int{returnnull;}try{var_dump(make());}catch(\Throwable$th){echo$th->getMessage();}系统会对返回值自动处理

functionmake():String{return100;}try{var_dump(make());}catch(\Throwable$th){echo$th->getMessage();}如果不希望函数返回任何值时,设置返回值为

voidfunctionmake():void{returnPFinal社区;}try{var_dump(make());}catch(\Throwable$th){echo$th->getMessage

();}变量范围变量能见度所谓变量的能见度,意指变量在程序中的可作用范围当一个变量执行赋值动作后,会随着声明局部的差异,而有不同的作用范围大致上来说变量会依据声明的局部分为下列两种:局部变量和全局变量局部变量

在函数之中声明的变量就是局部变量,并且该变量只有在函数范围之中才能加以使用如果其它程序局部需要调用使用该变量值时,必须透过「return」指令,来将其传回至主程序区块以作后续处理$pf=0;function。

p(){$pf=3;//定义局部变量 echo"在函数中显示局部变量\$pf值: $pf

";}p();echo"在函数外显示变量\$pf值: $pf

";全局变量在函数范围之外声明的变量为全局变量,在函数无法直接使用全局变量,函数要使用全局变量,必须要利用global引入或 $GLOBALS超全局数组引入。

$pf=“PFinal社区”;functionp(){global$pf;//利用 global 引入全局变量 echo$pf;}p();静态变量PHP支持声明函数变量为静态的(static)一个静态变量在所有对该函数的调用之间共享,并且仅在脚本的执行期间函数第一次被调用时被初始化。

要声明函数变量为静态的用关键字static通常,静态变量的第一次使用时赋予一个初始值functionsum(int...$num):int{static$count=0;return$count+=array_sum

($num);}echosum(1,2,3);echo;echosum(1,2,3);变量函数PHP 支持变量函数的概念这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且将尝试执行它。

除了别的事情以外,这个可以被用于实现回调函数,函数表等等变量函数不能用于语言结构,例如 echo(),print(),unset(),isset(),empty(),include(),require() 以及类似的语句。

需要使用自己的外壳函数来将这些结构用作变量函数$file=pf.gif;$action=strtolower(trim(strrchr($file,.),.));functionjpg(){return

jpeg 类型;}functionpng(){returnpng 类型;}if(!function_exists($action)){echo文件类型错误;}else{echo$action();}递归调用

所谓的函数递归调用,就是函数可以在其声明的执行叙述之中调用执行自己通常在此类型的函数之中会附加一个条件判断叙述,以判断是否需要执行递归调用,并且在特定条件下终止函数的递归调用动作,把目前流程的主控权交回上一层函数执行。

因此当某个执行递归调用的函数,没有附加条件判断叙述时可能会造成无限循环的错误情形函数递归调用最大的好处在于可以精简程序中繁杂重复调用程序,并且能以这种特性来执行一些较为复杂的运算动作functionrecursive

($n){if($n==1){return$n;}return$n*recursive($n-1);}echo"当 N 值为 5 时,阶乘为: ".recursive(5);

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻17897