PHP 5.2.1 のコールバックとしてインスタンス メソッドを使用しようとしています。$this
PHP 5.4 の時点で、クロージャー内で使用できることを認識しています。PHP 5.3 では、名前を変更$this
し$self
てクロージャーに渡すことができます。ただし、PHP 5.2.1 で動作させるにはこれが必要なので、これらの方法はどちらも十分ではありません。2 つのコメント行は、私の最後の試みでした。その結果、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();