Annotation of embedaddon/php/tests/classes/unset_properties.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Un-setting instance properties causes magic methods to be called when trying to access them from outside the magic
        !             3: methods themselves.
        !             4: --FILE--
        !             5: <?php
        !             6: 
        !             7: class Test
        !             8: {
        !             9:        public    $publicProperty        = 'publicProperty set';
        !            10: 
        !            11:        protected $protectedProperty     = 'protectedProperty set';
        !            12: 
        !            13:        private   $privateProperty       = 'privateProperty set';
        !            14:        
        !            15:        public function __get($name)
        !            16:        {
        !            17:                return '__get "' . $name . '"';
        !            18:        }
        !            19:        
        !            20:        public function __set($name, $value)
        !            21:        {
        !            22:                $this->$name = $value;
        !            23:                echo '__set "' . $name . '" to "' . $value . '"';
        !            24:        }
        !            25:        
        !            26:        public function __isset($name)
        !            27:        {
        !            28:                echo '__isset "' . $name . '"';
        !            29:                return isset($this->$name);
        !            30:        }
        !            31:        
        !            32:        public function getPublicProperty()
        !            33:        {
        !            34:                return $this->publicProperty;
        !            35:        }
        !            36:        
        !            37:        public function setPublicProperty($publicProperty)
        !            38:        {
        !            39:                $this->publicProperty = $publicProperty;
        !            40:        }
        !            41: 
        !            42:        public function unsetProtectedProperty()
        !            43:        {
        !            44:                unset($this->protectedProperty);
        !            45:        }
        !            46: 
        !            47:        public function getProtectedProperty()
        !            48:        {
        !            49:                return $this->protectedProperty;
        !            50:        }
        !            51: 
        !            52:        public function setProtectedProperty($protectedProperty)
        !            53:        {
        !            54:                $this->protectedProperty = $protectedProperty;
        !            55:        }
        !            56: 
        !            57:        public function unsetPrivateProperty()
        !            58:        {
        !            59:                unset($this->privateProperty);
        !            60:        }
        !            61: 
        !            62:        public function getPrivateProperty()
        !            63:        {
        !            64:                return $this->privateProperty;
        !            65:        }
        !            66: 
        !            67:        public function setPrivateProperty($privateProperty)
        !            68:        {
        !            69:                $this->privateProperty = $privateProperty;
        !            70:        }
        !            71: }
        !            72: 
        !            73: // verifying public property
        !            74: $o = new Test;
        !            75: echo $o->publicProperty;
        !            76: echo "\n";
        !            77: var_export(isset($o->publicProperty));
        !            78: echo "\n";
        !            79: unset($o->publicProperty);
        !            80: isset($o->publicProperty);
        !            81: echo "\n";
        !            82: echo $o->publicProperty;
        !            83: echo "\n";
        !            84: echo $o->getPublicProperty();
        !            85: echo "\n";
        !            86: echo $o->setPublicProperty('new publicProperty value via setter');
        !            87: echo "\n";
        !            88: echo $o->publicProperty;
        !            89: echo "\n";
        !            90: unset($o->publicProperty);
        !            91: $o->publicProperty = 'new publicProperty value via public access';
        !            92: echo "\n";
        !            93: var_export(isset($o->publicProperty));
        !            94: echo "\n";
        !            95: echo $o->publicProperty;
        !            96: echo "\n\n";
        !            97: 
        !            98: // verifying protected property
        !            99: echo $o->getProtectedProperty();
        !           100: echo "\n";
        !           101: $o->unsetProtectedProperty();
        !           102: var_export(isset($o->protectedProperty));
        !           103: echo "\n";
        !           104: echo $o->getProtectedProperty();
        !           105: echo "\n";
        !           106: echo $o->setProtectedProperty('new protectedProperty value via setter');
        !           107: echo "\n";
        !           108: var_export(isset($o->protectedProperty));
        !           109: echo "\n";
        !           110: echo $o->getProtectedProperty();
        !           111: echo "\n\n";
        !           112: 
        !           113: // verifying private property
        !           114: echo $o->getPrivateProperty();
        !           115: echo "\n";
        !           116: $o->unsetPrivateProperty();
        !           117: var_export(isset($o->privateProperty));
        !           118: echo "\n";
        !           119: echo $o->getPrivateProperty();
        !           120: echo "\n";
        !           121: echo $o->setPrivateProperty('new privateProperty value via setter');
        !           122: echo "\n";
        !           123: var_export(isset($o->privateProperty));
        !           124: echo "\n";
        !           125: echo $o->getPrivateProperty();
        !           126: echo "\n\n";
        !           127: 
        !           128: ?>
        !           129: 
        !           130: --EXPECTF--
        !           131: publicProperty set
        !           132: true
        !           133: __isset "publicProperty"
        !           134: __get "publicProperty"
        !           135: __get "publicProperty"
        !           136: __set "publicProperty" to "new publicProperty value via setter"
        !           137: new publicProperty value via setter
        !           138: __set "publicProperty" to "new publicProperty value via public access"
        !           139: true
        !           140: new publicProperty value via public access
        !           141: 
        !           142: protectedProperty set
        !           143: __isset "protectedProperty"false
        !           144: __get "protectedProperty"
        !           145: __set "protectedProperty" to "new protectedProperty value via setter"
        !           146: __isset "protectedProperty"true
        !           147: new protectedProperty value via setter
        !           148: 
        !           149: privateProperty set
        !           150: __isset "privateProperty"false
        !           151: __get "privateProperty"
        !           152: __set "privateProperty" to "new privateProperty value via setter"
        !           153: __isset "privateProperty"true
        !           154: new privateProperty value via setter

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