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>