Annotation of embedaddon/php/ext/reflection/tests/closures_001.phpt, revision 1.1.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>