1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- --TEST--
- Reflection::getClosureThis()
- --SKIPIF--
- <?php
- if (!extension_loaded('reflection') || !defined('PHP_VERSION_ID') || PHP_VERSION_ID < 50300) {
- print 'skip';
- }
- ?>
- --FILE--
- <?php
- class StaticExample
- {
- static function foo()
- {
- var_dump( "Static Example class, Hello World!" );
- }
- }
- class Example
- {
- public $bar = 42;
- public function foo()
- {
- var_dump( "Example class, bar: " . $this->bar );
- }
- }
- // Initialize classes
- $class = new ReflectionClass( 'Example' );
- $staticclass = new ReflectionClass( 'StaticExample' );
- $object = new Example();
- $method = $staticclass->getMethod( 'foo' );
- $closure = $method->getClosure();
- $rf = new ReflectionFunction($closure);
- var_dump($rf->getClosureThis());
- $method = $class->getMethod( 'foo' );
- $closure = $method->getClosure( $object );
- $rf = new ReflectionFunction($closure);
- var_dump($rf->getClosureThis());
- echo "Done!\n";
- --EXPECTF--
- NULL
- object(Example)#%d (1) {
- ["bar"]=>
- int(42)
- }
- Done!
|