Annotation of embedaddon/php/ext/reflection/tests/bug38465.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Bug #38465 (ReflectionParameter fails on access to self::)
        !             3: --FILE--
        !             4: <?php
        !             5: class Baz {
        !             6:     const B = 3;
        !             7: }
        !             8: 
        !             9: class Foo {
        !            10:     const X = 1;
        !            11:     public function x($a = self::X, $b = Baz::B, $c = 99) {}
        !            12: }
        !            13: 
        !            14: class Bar extends Foo {
        !            15:     const Y = 2;
        !            16:     public function y($a = self::Y, $b = Baz::B, $c = 99) {}
        !            17: }
        !            18: 
        !            19: 
        !            20: echo "From global scope:\n";
        !            21: 
        !            22: $clazz = new ReflectionClass('Bar');
        !            23: foreach ($clazz->getMethods() as $method) {
        !            24:     foreach ($method->getParameters() as $param) {
        !            25:         if ($param->isDefaultValueAvailable()) {
        !            26:             echo $method->getDeclaringClass()->getName(), '::', $method->getName(), '($', $param->getName(), ' = ', $param->getDefaultValue(), ")\n";
        !            27:         }
        !            28:     }
        !            29: }
        !            30: 
        !            31: echo "\nFrom class context:\n";
        !            32: 
        !            33: class Test {
        !            34:     function __construct() {
        !            35:         $clazz = new ReflectionClass('Bar');
        !            36:         foreach ($clazz->getMethods() as $method) {
        !            37:             foreach ($method->getParameters() as $param) {
        !            38:                 if ($param->isDefaultValueAvailable()) {
        !            39:                     echo $method->getDeclaringClass()->getName(), '::', $method->getName(), '($', $param->getName(), ' = ', $param->getDefaultValue(), ")\n";
        !            40:                 }
        !            41:             }
        !            42:         }
        !            43:     }
        !            44: }
        !            45: 
        !            46: new Test();
        !            47: 
        !            48: ?>
        !            49: --EXPECT--
        !            50: From global scope:
        !            51: Bar::y($a = 2)
        !            52: Bar::y($b = 3)
        !            53: Bar::y($c = 99)
        !            54: Foo::x($a = 1)
        !            55: Foo::x($b = 3)
        !            56: Foo::x($c = 99)
        !            57: 
        !            58: From class context:
        !            59: Bar::y($a = 2)
        !            60: Bar::y($b = 3)
        !            61: Bar::y($c = 99)
        !            62: Foo::x($a = 1)
        !            63: Foo::x($b = 3)
        !            64: Foo::x($c = 99)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>