先看常规调用(一定要带上命名空间)
<?php
namespace __0801;
//调用常规方法
function sum($a,$b)
{
return "{$a} + {$b} = ". ($a + $b);
}
echo call_user_func_array(__NAMESPACE__.\'\sum\',[30,40]);
调用类中的方法
<?php
namespace __0801;
class Test1
{
public function mut($a,$b)
{
return "{$a} * {$b} = ".($a * $b);
}
}
//用对象去访问,call_user_func_array([对象,\'方法\'],[参数数组])
//$obj = new Test1();
echo call_user_func_array([new Test1(),\'mut\'],[10,20]);
调用类中的静态方法
<?php
namespace __0801;
class Test1
{
public static function mut($a,$b)
{
return "{$a} - {$b} = ". ($a -$b);
}
}
echo call_user_func_array([__NAMESPACE__.\'\Test1\',\'mut\'],[40,20]);
echo \'<hr>\';
echo call_user_func_array(__NAMESPACE__.\'\Test1::mut\',[90,50]);
echo \'<hr>\';
echo call_user_func_array([Test1::class,\'mut\'],[999,666]);