



首先了解两个动态调用函数的函数:
● call_user_func()函数,参数一指定调用的函数,参数二开始指定调用函数的参数。
● call_user_func_array()函数,参数一指定调用的函数,参数二使用数组指定调用函数的参数。
回调类型,在PHP文档中称为callable类型,可以将函数作为参数进行传递。先来看下面的代码。
本例中,首先定义了factory_add()和factory_sub()函数,它们都使用了两个参数,其功能分别是返回两个参数的相加或相减的结果。其次使用call_user_func()函数调用这两个函数,其中,参数一是字符串形式的函数名,从第二个参数开始设置实际调用函数的参数。代码执行结果见图5-9。
图 5-9
实际应用中,为了简化代码,对于一次性使用的回调函数,还可以直接在应用的位置定义为匿名函数,如下面的代码。
<?php
echo call_user_func(function($x,$y){return $x*$y;},10,99);
?>
本例中,匿名函数返回了两个参数的乘法运算结果,执行代码会显示990。
此外,在调用函数前,可以使用function_exists()函数判断需要的函数是否存在,如代码function_exists("factory_add"),当factory_add()函数存在时返回true,否则返回false。