Annotation of embedaddon/php/Zend/tests/dereference_002.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Testing array dereference on method calls
        !             3: --FILE--
        !             4: <?php
        !             5: 
        !             6: error_reporting(E_ALL);
        !             7: 
        !             8: class  foo {
        !             9:        public function bar() {
        !            10:                $x = array();
        !            11:                $x[] = 3;
        !            12:                $x[] = array(1, 5);
        !            13:                $x[] = new foo;
        !            14:                return $x;
        !            15:        }
        !            16: }
        !            17: 
        !            18: $foo = new foo;
        !            19: 
        !            20: var_dump($x = $foo->bar()[1]);
        !            21: var_dump($foo->bar()[1][1]);
        !            22: var_dump($x[0]);
        !            23: var_dump($x = $foo->bar()[2]);
        !            24: var_dump($x->bar());
        !            25: var_dump($x->bar()[0]);
        !            26: 
        !            27: $x = array();
        !            28: $x[] = new foo;
        !            29: var_dump($x[0]->bar()[2]);
        !            30: var_dump($foo->bar()[2]->bar()[1]);
        !            31: var_dump($foo->bar()[2]->bar()[2]->bar()[1][0]);
        !            32: var_dump($foo->bar()[2]->bar()[2]->bar()[1][0][1]);
        !            33: var_dump($foo->bar()[2]->bar()[2]->bar()[4]);
        !            34: var_dump($foo->bar()[3]->bar());
        !            35: 
        !            36: ?>
        !            37: --EXPECTF--
        !            38: array(2) {
        !            39:   [0]=>
        !            40:   int(1)
        !            41:   [1]=>
        !            42:   int(5)
        !            43: }
        !            44: int(5)
        !            45: int(1)
        !            46: object(foo)#2 (0) {
        !            47: }
        !            48: array(3) {
        !            49:   [0]=>
        !            50:   int(3)
        !            51:   [1]=>
        !            52:   array(2) {
        !            53:     [0]=>
        !            54:     int(1)
        !            55:     [1]=>
        !            56:     int(5)
        !            57:   }
        !            58:   [2]=>
        !            59:   object(foo)#3 (0) {
        !            60:   }
        !            61: }
        !            62: int(3)
        !            63: object(foo)#3 (0) {
        !            64: }
        !            65: array(2) {
        !            66:   [0]=>
        !            67:   int(1)
        !            68:   [1]=>
        !            69:   int(5)
        !            70: }
        !            71: int(1)
        !            72: NULL
        !            73: 
        !            74: Notice: Undefined offset: 4 in %s on line %d
        !            75: NULL
        !            76: 
        !            77: Notice: Undefined offset: 3 in %s on line %d
        !            78: 
        !            79: Fatal error: Call to a member function bar() on a non-object in %s on line %d

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