PHP 5.2.1のコールバックとしてインスタンスメソッドを使用しようとしています。私は、PHP 5.4ではクロージャ内で$this
を使用でき、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();
ああ、完璧! – v0idless
私は助けることができる嬉しい:-) –