目录......................................................
.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
*/