魏长东

weichangdong

php的invoke和invokeArgs函数

看一个框架,没有往常框架的先new一个类,然后执行method,原来是通过 ReflectionMethod的invoke和invokeArgs函数实现的。直接把手册的例子拿来了。

<?php
class HelloWorld {

    public function sayHelloTo($name) {
        return 'Hello ' . $name;
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invokeArgs(new HelloWorld(), array('Mike'));
?>

执行输出:Hello Mike

<?php
class HelloWorld {

    public function sayHelloTo() {
        return 'Hello swordman';
    }

}

$reflectionMethod = new ReflectionMethod('HelloWorld', 'sayHelloTo');
echo $reflectionMethod->invoke(new HelloWorld());
?>

输出:Hello swordman