Annotation of embedaddon/php/ext/reflection/tests/ReflectionMethod_getClosureThis.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Reflection::getClosureThis()
! 3: --SKIPIF--
! 4: <?php
! 5: if (!extension_loaded('reflection') || !defined('PHP_VERSION_ID') || PHP_VERSION_ID < 50300) {
! 6: print 'skip';
! 7: }
! 8: ?>
! 9: --FILE--
! 10: <?php
! 11: class StaticExample
! 12: {
! 13: static function foo()
! 14: {
! 15: var_dump( "Static Example class, Hello World!" );
! 16: }
! 17: }
! 18:
! 19: class Example
! 20: {
! 21: public $bar = 42;
! 22: public function foo()
! 23: {
! 24: var_dump( "Example class, bar: " . $this->bar );
! 25: }
! 26: }
! 27:
! 28: // Initialize classes
! 29: $class = new ReflectionClass( 'Example' );
! 30: $staticclass = new ReflectionClass( 'StaticExample' );
! 31: $object = new Example();
! 32:
! 33: $method = $staticclass->getMethod( 'foo' );
! 34: $closure = $method->getClosure();
! 35: $rf = new ReflectionFunction($closure);
! 36:
! 37: var_dump($rf->getClosureThis());
! 38:
! 39: $method = $class->getMethod( 'foo' );
! 40:
! 41: $closure = $method->getClosure( $object );
! 42: $rf = new ReflectionFunction($closure);
! 43:
! 44: var_dump($rf->getClosureThis());
! 45:
! 46: echo "Done!\n";
! 47: --EXPECTF--
! 48: NULL
! 49: object(Example)#%d (1) {
! 50: ["bar"]=>
! 51: int(42)
! 52: }
! 53: Done!
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>