Annotation of embedaddon/php/tests/classes/property_recreate_private.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Unsetting and recreating private properties.
! 3: --FILE--
! 4: <?php
! 5: class C {
! 6: private $p = 'test';
! 7: function unsetPrivate() {
! 8: unset($this->p);
! 9: }
! 10: function setPrivate() {
! 11: $this->p = 'changed';
! 12: }
! 13: }
! 14:
! 15: class D extends C {
! 16: function setP() {
! 17: $this->p = 'changed in D';
! 18: }
! 19: }
! 20:
! 21: echo "Unset and recreate a superclass's private property:\n";
! 22: $d = new D;
! 23: $d->unsetPrivate();
! 24: $d->setPrivate();
! 25: var_dump($d);
! 26:
! 27: echo "\nUnset superclass's private property, and recreate it as public in subclass:\n";
! 28: $d = new D;
! 29: $d->unsetPrivate();
! 30: $d->setP();
! 31: var_dump($d);
! 32:
! 33: echo "\nUnset superclass's private property, and recreate it as public at global scope:\n";
! 34: $d = new D;
! 35: $d->unsetPrivate();
! 36: $d->p = 'this will create a public property';
! 37: var_dump($d);
! 38:
! 39:
! 40: echo "\n\nUnset and recreate a private property:\n";
! 41: $c = new C;
! 42: $c->unsetPrivate();
! 43: $c->setPrivate();
! 44: var_dump($c);
! 45:
! 46: echo "\nUnset a private property, and attempt to recreate at global scope (expecting failure):\n";
! 47: $c = new C;
! 48: $c->unsetPrivate();
! 49: $c->p = 'this will fail';
! 50: var_dump($c);
! 51: ?>
! 52: ==Done==
! 53: --EXPECTF--
! 54: Unset and recreate a superclass's private property:
! 55: object(D)#%d (1) {
! 56: [%u|b%"p":%u|b%"C":private]=>
! 57: %unicode|string%(7) "changed"
! 58: }
! 59:
! 60: Unset superclass's private property, and recreate it as public in subclass:
! 61: object(D)#%d (1) {
! 62: [%u|b%"p"]=>
! 63: %unicode|string%(12) "changed in D"
! 64: }
! 65:
! 66: Unset superclass's private property, and recreate it as public at global scope:
! 67: object(D)#%d (1) {
! 68: [%u|b%"p"]=>
! 69: %unicode|string%(34) "this will create a public property"
! 70: }
! 71:
! 72:
! 73: Unset and recreate a private property:
! 74: object(C)#%d (1) {
! 75: [%u|b%"p":%u|b%"C":private]=>
! 76: %unicode|string%(7) "changed"
! 77: }
! 78:
! 79: Unset a private property, and attempt to recreate at global scope (expecting failure):
! 80:
! 81: Fatal error: Cannot access private property C::$p in %s on line 46
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>