【发布时间】:2014-01-30 03:14:08
【问题描述】:
例子:
Class Test {
private function __construct() {}
public static function init() {
$new_test = new Test();
return $new_test->inner_test;
}
public function inner_test() {
print '!!!!';
}
}
$test = Test::init();
$test();
返回“PHP 致命错误:函数名必须是字符串”
有没有办法在 PHP 中完成这种 Javascript 类型的行为?
【问题讨论】:
-
PHP 不能像 JS 那样返回函数引用。也许尝试阅读php.net/manual/functions.anonymous.php
-
@Phil,是的,它可以...您只需将变量分配给指针。他很接近,但因为他分配了一个类,所以他必须使用一个数组。
-
@Thomas 不,它不能
-
您需要一个自定义的可调用包装器,或者将其包装在一个匿名函数中,否则返回一个
[$this, 'methodname']对,但使用 call_user_func 调用它。 -
我知道 call_user_func 经常被使用,我发布的例子工作得很好。
标签: php oop reference static-methods