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

1.1     ! misho       1: --TEST--
        !             2: ZE2 __set() and __get()
        !             3: --SKIPIF--
        !             4: <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
        !             5: --FILE--
        !             6: <?php
        !             7: class setter {
        !             8:        public $n;
        !             9:        public $x = array('a' => 1, 'b' => 2, 'c' => 3);
        !            10: 
        !            11:        function __get($nm) {
        !            12:                echo "Getting [$nm]\n";
        !            13: 
        !            14:                if (isset($this->x[$nm])) {
        !            15:                        $r = $this->x[$nm];
        !            16:                        echo "Returning: $r\n";
        !            17:                        return $r;
        !            18:                } 
        !            19:                else {
        !            20:                        echo "Nothing!\n";
        !            21:                }
        !            22:        }
        !            23: 
        !            24:        function __set($nm, $val) {
        !            25:                echo "Setting [$nm] to $val\n";
        !            26:                     
        !            27:                if (isset($this->x[$nm])) {
        !            28:                        $this->x[$nm] = $val;
        !            29:                        echo "OK!\n";
        !            30:                } 
        !            31:                else {
        !            32:                        echo "Not OK!\n";
        !            33:                }
        !            34:        }
        !            35: }
        !            36: 
        !            37: $foo = new Setter();
        !            38: 
        !            39: // this doesn't go through __set()... should it?
        !            40: $foo->n = 1;
        !            41: 
        !            42: // the rest are fine...
        !            43: $foo->a = 100;
        !            44: $foo->a++;
        !            45: $foo->z++;
        !            46: var_dump($foo);
        !            47:         
        !            48: ?>
        !            49: --EXPECTF--
        !            50: Setting [a] to 100
        !            51: OK!
        !            52: Getting [a]
        !            53: Returning: 100
        !            54: Setting [a] to 101
        !            55: OK!
        !            56: Getting [z]
        !            57: Nothing!
        !            58: Setting [z] to 1
        !            59: Not OK!
        !            60: object(setter)#%d (2) {
        !            61:   ["n"]=>
        !            62:   int(1)
        !            63:   ["x"]=>
        !            64:   array(3) {
        !            65:     ["a"]=>
        !            66:     int(101)
        !            67:     ["b"]=>
        !            68:     int(2)
        !            69:     ["c"]=>
        !            70:     int(3)
        !            71:   }
        !            72: }

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