Annotation of embedaddon/php/tests/lang/passByReference_006.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Pass uninitialised objects and arrays by reference to test implicit initialisation.
! 3: --FILE--
! 4: <?php
! 5:
! 6: function refs(&$ref1, &$ref2, &$ref3, &$ref4, &$ref5) {
! 7: $ref1 = "Ref1 changed";
! 8: $ref2 = "Ref2 changed";
! 9: $ref3 = "Ref3 changed";
! 10: $ref4 = "Ref4 changed";
! 11: $ref5 = "Ref5 changed";
! 12: }
! 13:
! 14:
! 15: class C {
! 16:
! 17: function __construct(&$ref1, &$ref2, &$ref3, &$ref4, &$ref5) {
! 18: $ref1 = "Ref1 changed";
! 19: $ref2 = "Ref2 changed";
! 20: $ref3 = "Ref3 changed";
! 21: $ref4 = "Ref4 changed";
! 22: $ref5 = "Ref5 changed";
! 23: }
! 24:
! 25: function refs(&$ref1, &$ref2, &$ref3, &$ref4, &$ref5) {
! 26: $ref1 = "Ref1 changed";
! 27: $ref2 = "Ref2 changed";
! 28: $ref3 = "Ref3 changed";
! 29: $ref4 = "Ref4 changed";
! 30: $ref5 = "Ref5 changed";
! 31: }
! 32:
! 33: }
! 34:
! 35: echo "\n ---- Pass uninitialised array & object by ref: function call ---\n";
! 36: unset($u1, $u2, $u3, $u4, $u5);
! 37: refs($u1[0], $u2[0][1], $u3->a, $u4->a->b, $u5->a->b->c);
! 38: var_dump($u1, $u2, $u3, $u4, $u5);
! 39:
! 40: echo "\n ---- Pass uninitialised arrays & objects by ref: static method call ---\n";
! 41: unset($u1, $u2, $u3, $u4, $u5);
! 42: C::refs($u1[0], $u2[0][1], $u3->a, $u4->a->b, $u5->a->b->c);
! 43: var_dump($u1, $u2, $u3, $u4, $u5);
! 44:
! 45: echo "\n\n---- Pass uninitialised arrays & objects by ref: constructor ---\n";
! 46: unset($u1, $u2, $u3, $u4, $u5);
! 47: $c = new C($u1[0], $u2[0][1], $u3->a, $u4->a->b, $u5->a->b->c);
! 48: var_dump($u1, $u2, $u3, $u4, $u5);
! 49:
! 50: echo "\n ---- Pass uninitialised arrays & objects by ref: instance method call ---\n";
! 51: unset($u1, $u2, $u3, $u4, $u5);
! 52: $c->refs($u1[0], $u2[0][1], $u3->a, $u4->a->b, $u5->a->b->c);
! 53: var_dump($u1, $u2, $u3, $u4, $u5);
! 54:
! 55: ?>
! 56: --EXPECTF--
! 57:
! 58: ---- Pass uninitialised array & object by ref: function call ---
! 59: array(1) {
! 60: [0]=>
! 61: string(12) "Ref1 changed"
! 62: }
! 63: array(1) {
! 64: [0]=>
! 65: array(1) {
! 66: [1]=>
! 67: string(12) "Ref2 changed"
! 68: }
! 69: }
! 70: object(stdClass)#%d (1) {
! 71: ["a"]=>
! 72: string(12) "Ref3 changed"
! 73: }
! 74: object(stdClass)#%d (1) {
! 75: ["a"]=>
! 76: object(stdClass)#%d (1) {
! 77: ["b"]=>
! 78: string(12) "Ref4 changed"
! 79: }
! 80: }
! 81: object(stdClass)#%d (1) {
! 82: ["a"]=>
! 83: object(stdClass)#%d (1) {
! 84: ["b"]=>
! 85: object(stdClass)#%d (1) {
! 86: ["c"]=>
! 87: string(12) "Ref5 changed"
! 88: }
! 89: }
! 90: }
! 91:
! 92: ---- Pass uninitialised arrays & objects by ref: static method call ---
! 93:
! 94: Strict Standards: Non-static method C::refs() should not be called statically in %s on line 39
! 95: array(1) {
! 96: [0]=>
! 97: string(12) "Ref1 changed"
! 98: }
! 99: array(1) {
! 100: [0]=>
! 101: array(1) {
! 102: [1]=>
! 103: string(12) "Ref2 changed"
! 104: }
! 105: }
! 106: object(stdClass)#%d (1) {
! 107: ["a"]=>
! 108: string(12) "Ref3 changed"
! 109: }
! 110: object(stdClass)#%d (1) {
! 111: ["a"]=>
! 112: object(stdClass)#%d (1) {
! 113: ["b"]=>
! 114: string(12) "Ref4 changed"
! 115: }
! 116: }
! 117: object(stdClass)#%d (1) {
! 118: ["a"]=>
! 119: object(stdClass)#%d (1) {
! 120: ["b"]=>
! 121: object(stdClass)#%d (1) {
! 122: ["c"]=>
! 123: string(12) "Ref5 changed"
! 124: }
! 125: }
! 126: }
! 127:
! 128:
! 129: ---- Pass uninitialised arrays & objects by ref: constructor ---
! 130: array(1) {
! 131: [0]=>
! 132: string(12) "Ref1 changed"
! 133: }
! 134: array(1) {
! 135: [0]=>
! 136: array(1) {
! 137: [1]=>
! 138: string(12) "Ref2 changed"
! 139: }
! 140: }
! 141: object(stdClass)#%d (1) {
! 142: ["a"]=>
! 143: string(12) "Ref3 changed"
! 144: }
! 145: object(stdClass)#%d (1) {
! 146: ["a"]=>
! 147: object(stdClass)#%d (1) {
! 148: ["b"]=>
! 149: string(12) "Ref4 changed"
! 150: }
! 151: }
! 152: object(stdClass)#%d (1) {
! 153: ["a"]=>
! 154: object(stdClass)#%d (1) {
! 155: ["b"]=>
! 156: object(stdClass)#%d (1) {
! 157: ["c"]=>
! 158: string(12) "Ref5 changed"
! 159: }
! 160: }
! 161: }
! 162:
! 163: ---- Pass uninitialised arrays & objects by ref: instance method call ---
! 164: array(1) {
! 165: [0]=>
! 166: string(12) "Ref1 changed"
! 167: }
! 168: array(1) {
! 169: [0]=>
! 170: array(1) {
! 171: [1]=>
! 172: string(12) "Ref2 changed"
! 173: }
! 174: }
! 175: object(stdClass)#%d (1) {
! 176: ["a"]=>
! 177: string(12) "Ref3 changed"
! 178: }
! 179: object(stdClass)#%d (1) {
! 180: ["a"]=>
! 181: object(stdClass)#%d (1) {
! 182: ["b"]=>
! 183: string(12) "Ref4 changed"
! 184: }
! 185: }
! 186: object(stdClass)#%d (1) {
! 187: ["a"]=>
! 188: object(stdClass)#%d (1) {
! 189: ["b"]=>
! 190: object(stdClass)#%d (1) {
! 191: ["c"]=>
! 192: string(12) "Ref5 changed"
! 193: }
! 194: }
! 195: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>