当前有一个变量所保存的值,刚好是一个函数的名字,那么就可以使用变量+()来充当函数名使用。
$变量=‘add’;
function add(){
}
//可变函数
$变量();
<?php
//可变函数
//定义变量
$a='add';
//定义函数
function add(){
echo '我是可变函数';
}
$a(); //注意$符号别丢了 会报错的
?>
可变函数在系统使用的过程中还是比较多的,尤其是使用很多系统函数的时候:需要用户在外部定义一个自定义函数,但是需要传入到系统函数内部使用。
<?php
//可变函数
//定义系统函数(假设)
function sys_f($a,$b){
$b=$b+10;
return $a($b); //可变函数$a()就相当于add(20);
}
function add($num){
return $num*$num*$num*$num;
}
echo sys_f('add',10); //返回160000
//以上说明了什么? 说明函数也是可以作为值来传递的 跟js一样
?>
function free($a){
return $a(2); //1.return $a(2) 就相当与调用user(2)函数;
//2.user函数内部 是返回参数*参数 返回值为4
}
function user($b){
return $b*$b;
}
echo free('user'); //把函数user 当作参数来传递
?>