4

PHP 5.3 での Closures の導入に伴い、 ReflectionFunctionAbstract に getClosureThis() メソッドが導入ました。

誰がそれが何のためにあるのか考えていますか? ドキュメントはそれについて何も述べていません.Googleはこれまで役に立たず、さまざまなReflectionFunction/ReflectionMethodオブジェクトに対する私の試みはすべて返されNULLました.

4

1 に答える 1

3

それが言うように:

クロージャにバインドされたこのポインタを返します

したがって、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ポインタを返します。

于 2012-07-23T17:05:20.577 に答える