实例
<?php namespace User; function sum($a,$b){ return "{$a}+{$b}=".($a+$b); } // 正常调用sum函数 echo sum(10,20); echo '<br>'; // 作为回调函数调用,这里的call_user_func(),call_user_func_array()必须使用命名空间格式 echo call_user_func('\User\sum',20,30); echo "<br>"; echo __NAMESPACE__; echo "<br>"; // 调用一个回调函数,就是第一个参数,其余的参数作为该回调参数的参数 echo call_user_func(__NAMESPACE__. '\sum', 45, 78,100,200,300,400); echo '<hr>'; // call_user_func_array()是处理回调函数的函数,调用回调函数,并把一个数组参数作为回调函数的参数 echo call_user_func_array(__NAMESPACE__. '\sum', [68, 99,200,100]); echo '<hr>'; class User{ public function sum($a,$b){ return "{$a} + {$b} = " . ($a + $b); } } $user = new User(); // 回调执行对象 echo call_user_func_array([$user,'sum'],[20,30,40,50]); echo '<hr>'; echo call_user_func_array([new User(),'sum'],[120,230,40,50]); class Info{ public static function sum($a,$b){ return "{$a} + {$b} = " . ($a + $b); } } echo '<hr>'; // 回调执行类属性——静态方法 echo call_user_func_array(__NAMESPACE__.'\Info::sum', [25, 45,40,40]); // ::class , 返回一个带有命名空间的类名称 // 这个方法必须是php5.5版本及其以上,php5.4版本只能是上面的静态回调方法 echo '<br>'. Info::class; echo '<hr>'; echo call_user_func_array([Info::class,'sum'], [100, 200,200,300]); ?>
运行实例 »
点击 "运行实例" 按钮查看在线实例