如何动态地向php对象添加新方法?
如何“动态”向对象添加新方法?
$me= new stdClass;$me->doSomething=function ()
{
echo 'I\'ve done something';
};
$me->doSomething();
//Fatal error: Call to undefined method stdClass::doSomething()
回答:
您可以利用__call
这一点:
class Foo{
public function __call($method, $args)
{
if (isset($this->$method)) {
$func = $this->$method;
return call_user_func_array($func, $args);
}
}
}
$foo = new Foo();
$foo->bar = function () { echo "Hello, this function is added at runtime"; };
$foo->bar();
以上是 如何动态地向php对象添加新方法? 的全部内容, 来源链接: utcz.com/qa/404590.html