Annotation of embedaddon/php/ext/reflection/tests/bug52057.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #52057 (ReflectionClass fails on Closure class)
! 3: --FILE--
! 4: <?php
! 5:
! 6: $closure = function($a) { echo $a; };
! 7:
! 8: $reflection = new ReflectionClass('closure');
! 9: var_dump($reflection->hasMethod('__invoke')); // true
! 10:
! 11: $reflection = new ReflectionClass($closure);
! 12: var_dump($reflection->hasMethod('__invoke')); // true
! 13:
! 14: $reflection = new ReflectionObject($closure);
! 15: var_dump($reflection->hasMethod('__invoke')); // true
! 16:
! 17: $reflection = new ReflectionClass('closure');
! 18: var_dump($h = $reflection->getMethod('__invoke')); // true
! 19: var_dump($h->class.'::'.$h->getName());
! 20:
! 21: $reflection = new ReflectionClass($closure);
! 22: var_dump($h = $reflection->getMethod('__invoke')); // true
! 23: var_dump($h->class.'::'.$h->getName());
! 24:
! 25: $reflection = new ReflectionObject($closure);
! 26: var_dump($h = $reflection->getMethod('__invoke')); // true
! 27: var_dump($h->class.'::'.$h->getName());
! 28:
! 29: ?>
! 30: --EXPECTF--
! 31: bool(true)
! 32: bool(true)
! 33: bool(true)
! 34: object(ReflectionMethod)#%d (2) {
! 35: ["name"]=>
! 36: string(8) "__invoke"
! 37: ["class"]=>
! 38: string(7) "Closure"
! 39: }
! 40: string(17) "Closure::__invoke"
! 41: object(ReflectionMethod)#%d (2) {
! 42: ["name"]=>
! 43: string(8) "__invoke"
! 44: ["class"]=>
! 45: string(7) "Closure"
! 46: }
! 47: string(17) "Closure::__invoke"
! 48: object(ReflectionMethod)#%d (2) {
! 49: ["name"]=>
! 50: string(8) "__invoke"
! 51: ["class"]=>
! 52: string(7) "Closure"
! 53: }
! 54: string(17) "Closure::__invoke"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>