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

1.1     ! misho       1: --TEST--
        !             2: Bug #45139 (ReflectionProperty returns incorrect declaring class)
        !             3: --FILE--
        !             4: <?php
        !             5: 
        !             6: class A {
        !             7:        private $foo;
        !             8: }
        !             9: 
        !            10: class B extends A {
        !            11:        protected $bar;
        !            12:        private $baz;
        !            13:        private $quux;
        !            14: }
        !            15: 
        !            16: class C extends B {
        !            17:        public $foo;
        !            18:        private $baz;
        !            19:        protected $quux;
        !            20: }
        !            21: 
        !            22: $rc = new ReflectionClass('C');
        !            23: $rp = $rc->getProperty('foo');
        !            24: var_dump($rp->getDeclaringClass()->getName()); // c
        !            25: 
        !            26: $rc = new ReflectionClass('A');
        !            27: $rp = $rc->getProperty('foo');
        !            28: var_dump($rp->getDeclaringClass()->getName()); // A
        !            29: 
        !            30: $rc = new ReflectionClass('B');
        !            31: $rp = $rc->getProperty('bar');
        !            32: var_dump($rp->getDeclaringClass()->getName()); // B
        !            33: 
        !            34: $rc = new ReflectionClass('C');
        !            35: $rp = $rc->getProperty('bar');
        !            36: var_dump($rp->getDeclaringClass()->getName()); // B
        !            37: 
        !            38: $rc = new ReflectionClass('C');
        !            39: $rp = $rc->getProperty('baz');
        !            40: var_dump($rp->getDeclaringClass()->getName()); // C
        !            41: 
        !            42: $rc = new ReflectionClass('B');
        !            43: $rp = $rc->getProperty('baz');
        !            44: var_dump($rp->getDeclaringClass()->getName()); // B
        !            45: 
        !            46: $rc = new ReflectionClass('C');
        !            47: $rp = $rc->getProperty('quux');
        !            48: var_dump($rp->getDeclaringClass()->getName()); // C
        !            49: 
        !            50: ?>
        !            51: --EXPECT--
        !            52: string(1) "C"
        !            53: string(1) "A"
        !            54: string(1) "B"
        !            55: string(1) "B"
        !            56: string(1) "C"
        !            57: string(1) "B"
        !            58: string(1) "C"

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