目录......................................................
.00x1 可变函数
在PHP里面如果说将“函数名称”赋予字符串类型的变量。在调用这个变量的时候如果使用带有小括号,那么PHP就会将该作为函数解析。这就叫可变函数。
注:可变函数不可以用于echo,print,unset(),isset(),empty(),include,require以及类似的语言结构,需要自己封装以后实现。
.00x2 回调函数
在一个函数1中调用另一个函数2的时候,将一个函数2当做参数传进去,并且在函数1中使用。
.00x3 匿名函数
顾简单的说就是没有函数名的,但是需要注意在大括号的后面也还要再加一个分号。
.00x4 递归函数的使用
函数体自己调用自己。
...........................................................
00x1 可变函数的使用
在PHP里面如果说将“函数名称”赋予字符串类型的变量。在调用这个变量的时候如果使用带有小括号,那么PHP就会将该作为函数解析。这就叫可变函数。
注:可变函数不可以用于echo,print,unset(),isset(),empty(),include,require以及类似的语言结构,需要自己封装以后实现。
<?php $a = 'md5'; echo $a('hello world'); echo "<br />"; echo md5('hello world'); ?> /* 输出效果如下所示: 5eb63bbbe01eeed093cb22bb8f5acdc3 5eb63bbbe01eeed093cb22bb8f5acdc3 */
00x2 回调函数的使用
在一个函数1中调用另一个函数2的时候,将一个函数2当做参数传进去,并且在函数1中使用。
单个函数参数案例:
<?php function play(){ echo "playing...<br />"; } function study(){ echo "studying...<br />"; } function sing(){ echo "singing...<br />"; } function DoWhat($x){ echo "she "; echo $x(); } DoWhat('play'); ?> /*输出结果如下所示: she playing... */
多个函数参数案例:
<?php function study($username){ echo $username." studying...<br />"; } function play($username){ echo $username." playing...<br />"; } function eat($username){ echo $username." eating...<br />"; } function DoWhat($functionName,$param){ #可以理解成eat就是$functionname参数,$param就是eat函数里的$username参数。 $functionName($param); } DoWhat('play',"望大牛"); ?>
使用回调函数实现加减运算:
<?php /* 使用回调函数实现加减操作 */ function jiafa($x,$y){ return $x + $y; } function jianfa($x,$y){ return $x - $y; } function jiajian($suanfa,$q,$w){ return $suanfa($q,$w); } echo jiajian('jianfa','2','3'); ?>
00x3 匿名函数的使用
顾简单的说就是没有函数名的,但是需要注意在大括号的后面也还要再加一个分号。如下所示:
<?php $a = function(){ #再次处声明一个函数,并未声明函数名 return "hello world"; }; #记住这里要加一个分好! echo $a(); #输出的时候输出的是变量加括号。 /** * 输出效果如下所示: * hello world */
还有一种声明匿名函数的方法;
<?php $a = create_function('$x,$y', 'return $x + $y;'); #第一个参数是抽象参数,第二个是要执行的php语句。切记,后面的分号 echo $a(1,2);#也切记这里的参数要加上去。 /** * 输出效果如下所示: * 3 */
00x4 递归函数的使用
函数体自己调用自己。
<?php function test($x){ echo $x."<br />"; #首先先输出$x --$x; #让$x减一 if($x>=0){ #如果$x大于等于0执行语句中的 test($x); #$x再次执行一下。这时候$x已经变成4了 } echo test(5); /* 输出效果如下所示 5 4 3 2 1 0 */