Annotation of embedaddon/php/tests/classes/property_recreate_protected.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Unsetting and recreating protected properties.
! 3: --FILE--
! 4: <?php
! 5: class C {
! 6: protected $p = 'test';
! 7: function unsetProtected() {
! 8: unset($this->p);
! 9: }
! 10: function setProtected() {
! 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: $d = new D;
! 22: echo "Unset and recreate a protected property from property's declaring class scope:\n";
! 23: $d->unsetProtected();
! 24: $d->setProtected();
! 25: var_dump($d);
! 26:
! 27: echo "\nUnset and recreate a protected property from subclass:\n";
! 28: $d = new D;
! 29: $d->unsetProtected();
! 30: $d->setP();
! 31: var_dump($d);
! 32:
! 33: echo "\nUnset a protected property, and attempt to recreate it outside of scope (expected failure):\n";
! 34: $d->unsetProtected();
! 35: $d->p = 'this will fail';
! 36: var_dump($d);
! 37: ?>
! 38: --EXPECTF--
! 39: Unset and recreate a protected property from property's declaring class scope:
! 40: object(D)#%d (1) {
! 41: [%u|b%"p":protected]=>
! 42: %unicode|string%(7) "changed"
! 43: }
! 44:
! 45: Unset and recreate a protected property from subclass:
! 46: object(D)#%d (1) {
! 47: [%u|b%"p":protected]=>
! 48: %unicode|string%(12) "changed in D"
! 49: }
! 50:
! 51: Unset a protected property, and attempt to recreate it outside of scope (expected failure):
! 52:
! 53: Fatal error: Cannot access protected property %s::$p in %s on line 32
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>