PHP从外部调用类中的静态方法
先看常规调用(一定要带上命名空间)
<?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]);

浙公网安备 33010602011771号