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