【发布时间】:2011-03-14 23:12:49
【问题描述】:
我希望能够像这样在类的构造函数中动态创建实例方法:
class Foo{
function __construct() {
$code = 'print hi;';
$sayHi = create_function( '', $code);
print "$sayHi"; //prints lambda_2
print $sayHi(); // prints 'hi'
$this->sayHi = $sayHi;
}
}
$f = new Foo;
$f->sayHi(); //Fatal error: Call to undefined method Foo::sayHi() in /export/home/web/private/htdocs/staff/cohenaa/dev-drupal-2/sites/all/modules/devel/devel.module(1086) : eval()'d code on line 12
问题似乎是 lambda_2 函数对象没有在构造函数中绑定到 $this。
感谢任何帮助。
【问题讨论】:
-
你可能想清理构造函数代码中的错误。