PHP 5.3 での Closures の導入に伴い、 ReflectionFunctionAbstract に getClosureThis() メソッドが導入されました。
誰がそれが何のためにあるのか考えていますか? ドキュメントはそれについて何も述べていません.Googleはこれまで役に立たず、さまざまなReflectionFunction/ReflectionMethodオブジェクトに対する私の試みはすべて返されNULL
ました.
それが言うように:
クロージャにバインドされたこのポインタを返します
したがって、PHP 5.4 を使用している場合:
<?php
class MyObj {}
$foo = function() { };
$obj = new MyObj;
$foo = $foo->bindTo($obj); // Inside the newly returned closure, $this == $obj
$reflector = new ReflectionFunction($foo);
assert($obj === $reflector->getClosureThis());
つまり、クロージャの$this
ポインタを返します。