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>