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