Annotation of embedaddon/php/Zend/tests/bug63462.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: Test script to verify that magic methods should be called only once when accessing an unset property.
                      3: --CREDITS--
                      4: Marco Pivetta <ocramius@gmail.com>
                      5: --FILE--
                      6: <?php
                      7: class Test {
                      8:        public    $publicProperty;
                      9:        protected $protectedProperty;
                     10:        private   $privateProperty;
                     11: 
                     12:        public function __construct() {
                     13:                unset(
                     14:                        $this->publicProperty, 
                     15:                        $this->protectedProperty, 
                     16:                        $this->privateProperty
                     17:                );
                     18:        }
                     19: 
                     20:        function __get($name) {
                     21:                echo '__get ' . $name . "\n";
                     22:                return $this->$name;
                     23:        }
                     24: 
                     25:        function __set($name, $value) {
                     26:                echo '__set ' . $name . "\n";
                     27:                $this->$name = $value;
                     28:        }
                     29: 
                     30:        function __isset($name) {
                     31:                echo '__isset ' . $name . "\n";
                     32:                return isset($this->$name);
                     33:        }
                     34: }
                     35: 
                     36: $test = new Test();
                     37: 
                     38: $test->nonExisting;
                     39: $test->publicProperty;
                     40: $test->protectedProperty;
                     41: $test->privateProperty;
                     42: isset($test->nonExisting);
                     43: isset($test->publicProperty);
                     44: isset($test->protectedProperty);
                     45: isset($test->privateProperty);
                     46: $test->nonExisting       = 'value';
                     47: $test->publicProperty   = 'value';
                     48: $test->protectedProperty = 'value';
                     49: $test->privateProperty   = 'value';
                     50: 
                     51: ?>
                     52: 
                     53: --EXPECTF--
                     54: __get nonExisting
                     55: 
                     56: Notice: Undefined property: Test::$nonExisting in %s on line %d
                     57: __get publicProperty
                     58: 
                     59: Notice: Undefined property: Test::$publicProperty in %s on line %d
                     60: __get protectedProperty
                     61: 
                     62: Notice: Undefined property: Test::$protectedProperty in %s on line %d
                     63: __get privateProperty
                     64: 
                     65: Notice: Undefined property: Test::$privateProperty in %s on line %d
                     66: __isset nonExisting
                     67: __isset publicProperty
                     68: __isset protectedProperty
                     69: __isset privateProperty
                     70: __set nonExisting
                     71: __set publicProperty
                     72: __set protectedProperty
                     73: __set privateProperty
                     74: 

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