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