我有以下代码:
$loClass = new ReflectionClass('SampleClass');
$loMethod = $loClass->getMethod('doSomething');
$loMethod->invoke(array());
让我们说这个课程看起来像这样:
<?php
/**
* Sample Class
*/
class SampleClass
{
public function __construct()
{
}
/**
* Do somehting
*/
public function doSomething($paParams)
{
// do something
}
}
我收到以下错误:
object(ReflectionException)#181 (7) { ["message":protected]=> string(29) "Non-object passed to Invoke()", ..
我想要做的是从字符串调用类方法,参数作为数组(可以是空数组) 任何人都可以帮助我吗?
答案 0 :(得分:2)
除非方法是静态的,否则你需要传递对象实例来调用这个方法:
$loClass = new ReflectionClass('SampleClass');
$loMethod = $loClass->getMethod('doSomething');
$sample = new SampleClass();
$loMethod->invoke($sample, array());
的手册页