Annotation of embedaddon/php/tests/classes/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: --XFAIL--
                      6: Bug 63462 is not yet fixed
                      7: --FILE--
                      8: <?php
                      9: class Test {
                     10:        public    $publicProperty;
                     11:        protected $protectedProperty;
                     12:        private   $privateProperty;
                     13: 
                     14:        public function __construct() {
                     15:                unset(
                     16:                        $this->publicProperty,
                     17:                        $this->protectedProperty,
                     18:                        $this->privateProperty
                     19:                );
                     20:        }
                     21: 
                     22:        function __get($name) {
                     23:                echo '__get ' . $name . "\n";
                     24:                return $this->$name;
                     25:        }
                     26: 
                     27:        function __set($name, $value) {
                     28:                echo '__set ' . $name . "\n";
                     29:                $this->$name = $value;
                     30:        }
                     31: 
                     32:        function __isset($name) {
                     33:                echo '__isset ' . $name . "\n";
                     34:                return isset($this->$name);
                     35:        }
                     36: }
                     37: 
                     38: $test = new Test();
                     39: 
                     40: $test->nonExisting;
                     41: $test->publicProperty;
                     42: $test->protectedProperty;
                     43: $test->privateProperty;
                     44: isset($test->nonExisting);
                     45: isset($test->publicProperty);
                     46: isset($test->protectedProperty);
                     47: isset($test->privateProperty);
                     48: $test->nonExisting       = 'value';
                     49: $test->publicProperty   = 'value';
                     50: $test->protectedProperty = 'value';
                     51: $test->privateProperty   = 'value';
                     52: 
                     53: ?>
                     54: 
                     55: --EXPECTF--
                     56: __get nonExisting
                     57: Notice: Undefined index: nonExisting in %__set__get_006.php on line %d
                     58: __get publicProperty
                     59: Notice: Undefined index: publicProperty in %__set__get_006.php on line %d
                     60: __get protectedProperty
                     61: Notice: Undefined index: protectedProperty in %__set__get_006.php on line %d
                     62: __get privateProperty
                     63: Notice: Undefined index: privateProperty in %__set__get_006.php on line %d
                     64: __isset nonExisting
                     65: __isset publicProperty
                     66: __isset protectedProperty
                     67: __isset privateProperty
                     68: __set nonExisting
                     69: __set publicProperty
                     70: __set protectedProperty
                     71: __set privateProperty

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