我正在尝试使用实例方法作为 PHP 5.2.1 的回调。我知道从 PHP 5.4 开始,您可以$this
在闭包内使用,而在 PHP 5.3 中,您可以重命名并将$this
其$self
传递给闭包。但是,这些方法都不够用,因为我需要它来为 PHP 5.2.1 工作。两行评论是我最后一次尝试。这导致Fatal error: Call to a member function hello() on a non-object
- 无论如何我可以回调 PHP 5.2.1 中的实例方法吗?
<?php
class Test {
public function __construct() {
$self = &$this;
$cb = function() use ( $self ) {
$self->hello();
};
call_user_func( $cb );
// $cb = create_function( '$self', '$self->hello();' );
// call_user_func( $cb );
}
public function hello() {
echo "Hello, World!\n";
}
}
$t = new Test();