Annotation of embedaddon/php/ext/reflection/tests/ReflectionMethod_getClosure_basic.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test ReflectionMethod::getClosure() function : basic functionality
! 3: --FILE--
! 4: <?php
! 5: /* Prototype : public mixed ReflectionFunction::getClosure()
! 6: * Description: Returns a dynamically created closure for the method
! 7: * Source code: ext/reflection/php_reflection.c
! 8: * Alias to functions:
! 9: */
! 10:
! 11: echo "*** Testing ReflectionMethod::getClosure() : basic functionality ***\n";
! 12:
! 13: class StaticExample
! 14: {
! 15: static function foo()
! 16: {
! 17: var_dump( "Static Example class, Hello World!" );
! 18: }
! 19: }
! 20:
! 21: class Example
! 22: {
! 23: public $bar = 42;
! 24: public function foo()
! 25: {
! 26: var_dump( "Example class, bar: " . $this->bar );
! 27: }
! 28: }
! 29:
! 30: // Initialize classes
! 31: $class = new ReflectionClass( 'Example' );
! 32: $staticclass = new ReflectionClass( 'StaticExample' );
! 33: $object = new Example();
! 34: $fakeobj = new StdClass();
! 35:
! 36:
! 37: $method = $staticclass->getMethod( 'foo' );
! 38: $closure = $method->getClosure();
! 39: $closure();
! 40:
! 41: $method = $class->getMethod( 'foo' );
! 42:
! 43: $closure = $method->getClosure( $object );
! 44: $closure();
! 45: $object->bar = 34;
! 46: $closure();
! 47:
! 48: ?>
! 49: ===DONE===
! 50: --EXPECTF--
! 51: *** Testing ReflectionMethod::getClosure() : basic functionality ***
! 52: string(34) "Static Example class, Hello World!"
! 53: string(22) "Example class, bar: 42"
! 54: string(22) "Example class, bar: 34"
! 55: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>