Annotation of embedaddon/php/ext/reflection/tests/closures_001.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Reflection on closures
! 3: --FILE--
! 4: <?php
! 5:
! 6: $closure = function($a, $b = 0) { };
! 7:
! 8: $ro = new ReflectionObject($closure);
! 9: $rm = $ro->getMethod('__invoke');
! 10: var_dump($rm->getNumberOfParameters());
! 11: var_dump($rm->getNumberOfRequiredParameters());
! 12: $rms = $ro->getMethods();
! 13: foreach($rms as $rm) {
! 14: if ($rm->getName() == '__invoke') {
! 15: var_dump($rm->getNumberOfParameters());
! 16: var_dump($rm->getNumberOfRequiredParameters());
! 17: }
! 18: }
! 19:
! 20: echo "---\n";
! 21:
! 22: $rm = new ReflectionMethod($closure, '__invoke');
! 23: var_dump($rm->getName());
! 24: var_dump($rm->getNumberOfParameters());
! 25: var_dump($rm->getNumberOfRequiredParameters());
! 26:
! 27: echo "---\n";
! 28:
! 29: $rp = new ReflectionParameter(array($closure, '__invoke'), 0);
! 30: var_dump($rp->isOptional());
! 31: $rp = new ReflectionParameter(array($closure, '__invoke'), 1);
! 32: var_dump($rp->isOptional());
! 33: $rp = new ReflectionParameter(array($closure, '__invoke'), 'a');
! 34: var_dump($rp->isOptional());
! 35: $rp = new ReflectionParameter(array($closure, '__invoke'), 'b');
! 36: var_dump($rp->isOptional());
! 37:
! 38: echo "---\n";
! 39:
! 40: $rp = new ReflectionParameter($closure, 0);
! 41: var_dump($rp->isOptional());
! 42: $rp = new ReflectionParameter($closure, 1);
! 43: var_dump($rp->isOptional());
! 44: $rp = new ReflectionParameter($closure, 'a');
! 45: var_dump($rp->isOptional());
! 46: $rp = new ReflectionParameter($closure, 'b');
! 47: var_dump($rp->isOptional());
! 48:
! 49: ?>
! 50: ===DONE===
! 51: --EXPECTF--
! 52: int(2)
! 53: int(1)
! 54: int(2)
! 55: int(1)
! 56: ---
! 57: string(8) "__invoke"
! 58: int(2)
! 59: int(1)
! 60: ---
! 61: bool(false)
! 62: bool(true)
! 63: bool(false)
! 64: bool(true)
! 65: ---
! 66: bool(false)
! 67: bool(true)
! 68: bool(false)
! 69: bool(true)
! 70: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>