jsdd

先看常规调用(一定要带上命名空间)

<?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]);

  

分类:

技术点:

相关文章: