call_user_func_array
PHP官方 call_user_func_array讲解
call_user_func_array
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数`
范例
- 使用第一种情况
<?php
//单个参数
function LovePhper($app){
echo 'Love for - '.$app;
}
/方法名参数/// 方法内多个参数使用数组
call_user_func('LovePhper','PHP');
//多个参数
function LikePhper(... $app){
$str = 'Like for - ';
foreach ($app as $key => $value) {
echo $str,$value,PHP_EOL;
}
}
call_user_func_array('LikePhper', ['PHP','JAVA','Python','Dart'])
?>
*************************输出*************************
Love for - PHP
Like for - PHP
Like for - JAVA
Like for - Python
Like for - Dart
- 调用类的内部方法
<?php
class Cladr{
static function LovePhper($app){
echo 'Love for - '.$app;
}
}
call_user_func_array(array('Cladr','LovePhper'),['PHP'])
*************************输出*************************
Love for - PHP
?>
- 命名空间使用
<?php
namespace Lj;
class Cladr{
static function LovePhper($app){
echo 'Love for - namespace - '.$app;
}
}
call_user_func_array(array(__NAMESPACE__.'\Cladr','LovePhper'),['PHP'])
*************************输出*************************
Love for - namespace - PHP
?>
4.把完整的函数作为回调传入call_user_func_array()
<?php
$LovePhper = function($app){
return 'Love for - - '.$app;
};
echo call_user_func_array($LovePhper, ['PHP'])
*************************输出*************************
Love for - - PHP
?>