如何动态地向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

回到顶部