Annotation of embedaddon/php/Zend/tests/dereference_002.phpt, revision 1.1.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>