Annotation of embedaddon/php/ext/reflection/tests/bug46064.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Bug #46064 (Exception when creating ReflectionProperty object on dynamicly created property)
                      3: --FILE--
                      4: <?php
                      5: 
                      6: class x {
                      7:        public $zzz = 2;
                      8: }
                      9: 
                     10: $o = new x;
                     11: $o->z = 1000;
                     12: $o->zzz = 3;
                     13: 
                     14: var_dump($h = new reflectionproperty($o, 'z'));
                     15: var_dump($h->isDefault());
                     16: var_dump($h->isPublic());
                     17: var_dump($h->isStatic());
                     18: var_dump($h->getName());
                     19: var_dump(Reflection::getModifierNames($h->getModifiers()));
                     20: var_dump($h->getValue($o));
                     21: 
                     22: print "---------------------------\n";
                     23: try {
                     24:        var_dump(new reflectionproperty($o, 'zz'));
                     25: } catch (Exception $e) {
                     26:        var_dump($e->getMessage());
                     27: }
                     28: 
                     29: var_dump(new reflectionproperty($o, 'zzz'));
                     30: 
                     31: class test {
                     32:        protected $a = 1;
                     33: }
                     34: 
                     35: class bar extends test {
                     36:        public function __construct() {
                     37:                $this->foobar = 2;
                     38:                $this->a = 200;
                     39:                
                     40:                $p = new reflectionproperty($this, 'foobar');
                     41:                var_dump($p->getValue($this), $p->isDefault(), $p->isPublic());
                     42:        }
                     43: }
                     44: 
                     45: new bar;
                     46: 
                     47: ?>
                     48: ===DONE===
                     49: --EXPECTF--
                     50: object(ReflectionProperty)#%d (2) {
                     51:   ["name"]=>
                     52:   string(1) "z"
                     53:   ["class"]=>
                     54:   string(1) "x"
                     55: }
                     56: bool(false)
                     57: bool(true)
                     58: bool(false)
                     59: string(1) "z"
                     60: array(1) {
                     61:   [0]=>
                     62:   string(6) "public"
                     63: }
                     64: int(1000)
                     65: ---------------------------
                     66: string(30) "Property x::$zz does not exist"
                     67: object(ReflectionProperty)#%d (2) {
                     68:   ["name"]=>
                     69:   string(3) "zzz"
                     70:   ["class"]=>
                     71:   string(1) "x"
                     72: }
                     73: int(2)
                     74: bool(false)
                     75: bool(true)
                     76: ===DONE===

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