Annotation of embedaddon/php/ext/standard/tests/serialize/serialization_arrays_003.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: serialization: arrays with references to an external variable
                      3: --FILE--
                      4: <?php
                      5: /* Prototype  : proto string serialize(mixed variable)
                      6:  * Description: Returns a string representation of variable (which can later be unserialized) 
                      7:  * Source code: ext/standard/var.c
                      8:  * Alias to functions: 
                      9:  */
                     10: /* Prototype  : proto mixed unserialize(string variable_representation)
                     11:  * Description: Takes a string representation of variable and recreates it 
                     12:  * Source code: ext/standard/var.c
                     13:  * Alias to functions: 
                     14:  */
                     15: 
                     16: function check(&$a) {
                     17:        var_dump($a);
                     18:        $ser = serialize($a);
                     19:        var_dump($ser);
                     20:        
                     21:        $b = unserialize($ser);
                     22:        var_dump($b);
                     23:        $b[0] = "b0.changed";
                     24:        var_dump($b);
                     25:        $b[1] = "b1.changed";
                     26:        var_dump($b);
                     27:        $b[2] = "b2.changed";
                     28:        var_dump($b);   
                     29: }
                     30: 
                     31: echo "\n\n--- 0 refs external:\n";
                     32: $ext = 1;
                     33: $a = array();
                     34: $a[0] = &$ext;
                     35: $a[1] = 1;
                     36: $a[2] = 1;
                     37: check($a);
                     38: 
                     39: echo "\n\n--- 1 refs external:\n";
                     40: $ext = 1;
                     41: $a = array();
                     42: $a[0] = 1;
                     43: $a[1] = &$ext;
                     44: $a[2] = 1;
                     45: check($a);
                     46: 
                     47: echo "\n\n--- 2 refs external:\n";
                     48: $ext = 1;
                     49: $a = array();
                     50: $a[0] = 1;
                     51: $a[1] = 1;
                     52: $a[2] = &$ext;
                     53: check($a);
                     54: 
                     55: echo "\n\n--- 1,2 ref external:\n";
                     56: $ext = 1;
                     57: $a = array();
                     58: $a[0] = &$ext;
                     59: $a[1] = &$ext;
                     60: $a[2] = 1;
                     61: check($a);
                     62: 
                     63: echo "\n\n--- 1,2,3 ref external:\n";
                     64: $ext = 1;
                     65: $a = array();
                     66: $a[0] = &$ext;
                     67: $a[1] = &$ext;
                     68: $a[2] = &$ext;
                     69: check($a);
                     70: 
                     71: echo "Done";
                     72: ?>
                     73: --EXPECTF--
                     74: 
                     75: 
                     76: --- 0 refs external:
                     77: array(3) {
                     78:   [0]=>
                     79:   &int(1)
                     80:   [1]=>
                     81:   int(1)
                     82:   [2]=>
                     83:   int(1)
                     84: }
                     85: string(30) "a:3:{i:0;i:1;i:1;i:1;i:2;i:1;}"
                     86: array(3) {
                     87:   [0]=>
                     88:   int(1)
                     89:   [1]=>
                     90:   int(1)
                     91:   [2]=>
                     92:   int(1)
                     93: }
                     94: array(3) {
                     95:   [0]=>
                     96:   string(10) "b0.changed"
                     97:   [1]=>
                     98:   int(1)
                     99:   [2]=>
                    100:   int(1)
                    101: }
                    102: array(3) {
                    103:   [0]=>
                    104:   string(10) "b0.changed"
                    105:   [1]=>
                    106:   string(10) "b1.changed"
                    107:   [2]=>
                    108:   int(1)
                    109: }
                    110: array(3) {
                    111:   [0]=>
                    112:   string(10) "b0.changed"
                    113:   [1]=>
                    114:   string(10) "b1.changed"
                    115:   [2]=>
                    116:   string(10) "b2.changed"
                    117: }
                    118: 
                    119: 
                    120: --- 1 refs external:
                    121: array(3) {
                    122:   [0]=>
                    123:   int(1)
                    124:   [1]=>
                    125:   &int(1)
                    126:   [2]=>
                    127:   int(1)
                    128: }
                    129: string(30) "a:3:{i:0;i:1;i:1;i:1;i:2;i:1;}"
                    130: array(3) {
                    131:   [0]=>
                    132:   int(1)
                    133:   [1]=>
                    134:   int(1)
                    135:   [2]=>
                    136:   int(1)
                    137: }
                    138: array(3) {
                    139:   [0]=>
                    140:   string(10) "b0.changed"
                    141:   [1]=>
                    142:   int(1)
                    143:   [2]=>
                    144:   int(1)
                    145: }
                    146: array(3) {
                    147:   [0]=>
                    148:   string(10) "b0.changed"
                    149:   [1]=>
                    150:   string(10) "b1.changed"
                    151:   [2]=>
                    152:   int(1)
                    153: }
                    154: array(3) {
                    155:   [0]=>
                    156:   string(10) "b0.changed"
                    157:   [1]=>
                    158:   string(10) "b1.changed"
                    159:   [2]=>
                    160:   string(10) "b2.changed"
                    161: }
                    162: 
                    163: 
                    164: --- 2 refs external:
                    165: array(3) {
                    166:   [0]=>
                    167:   int(1)
                    168:   [1]=>
                    169:   int(1)
                    170:   [2]=>
                    171:   &int(1)
                    172: }
                    173: string(30) "a:3:{i:0;i:1;i:1;i:1;i:2;i:1;}"
                    174: array(3) {
                    175:   [0]=>
                    176:   int(1)
                    177:   [1]=>
                    178:   int(1)
                    179:   [2]=>
                    180:   int(1)
                    181: }
                    182: array(3) {
                    183:   [0]=>
                    184:   string(10) "b0.changed"
                    185:   [1]=>
                    186:   int(1)
                    187:   [2]=>
                    188:   int(1)
                    189: }
                    190: array(3) {
                    191:   [0]=>
                    192:   string(10) "b0.changed"
                    193:   [1]=>
                    194:   string(10) "b1.changed"
                    195:   [2]=>
                    196:   int(1)
                    197: }
                    198: array(3) {
                    199:   [0]=>
                    200:   string(10) "b0.changed"
                    201:   [1]=>
                    202:   string(10) "b1.changed"
                    203:   [2]=>
                    204:   string(10) "b2.changed"
                    205: }
                    206: 
                    207: 
                    208: --- 1,2 ref external:
                    209: array(3) {
                    210:   [0]=>
                    211:   &int(1)
                    212:   [1]=>
                    213:   &int(1)
                    214:   [2]=>
                    215:   int(1)
                    216: }
                    217: string(30) "a:3:{i:0;i:1;i:1;R:2;i:2;i:1;}"
                    218: array(3) {
                    219:   [0]=>
                    220:   &int(1)
                    221:   [1]=>
                    222:   &int(1)
                    223:   [2]=>
                    224:   int(1)
                    225: }
                    226: array(3) {
                    227:   [0]=>
                    228:   &string(10) "b0.changed"
                    229:   [1]=>
                    230:   &string(10) "b0.changed"
                    231:   [2]=>
                    232:   int(1)
                    233: }
                    234: array(3) {
                    235:   [0]=>
                    236:   &string(10) "b1.changed"
                    237:   [1]=>
                    238:   &string(10) "b1.changed"
                    239:   [2]=>
                    240:   int(1)
                    241: }
                    242: array(3) {
                    243:   [0]=>
                    244:   &string(10) "b1.changed"
                    245:   [1]=>
                    246:   &string(10) "b1.changed"
                    247:   [2]=>
                    248:   string(10) "b2.changed"
                    249: }
                    250: 
                    251: 
                    252: --- 1,2,3 ref external:
                    253: array(3) {
                    254:   [0]=>
                    255:   &int(1)
                    256:   [1]=>
                    257:   &int(1)
                    258:   [2]=>
                    259:   &int(1)
                    260: }
                    261: string(30) "a:3:{i:0;i:1;i:1;R:2;i:2;R:2;}"
                    262: array(3) {
                    263:   [0]=>
                    264:   &int(1)
                    265:   [1]=>
                    266:   &int(1)
                    267:   [2]=>
                    268:   &int(1)
                    269: }
                    270: array(3) {
                    271:   [0]=>
                    272:   &string(10) "b0.changed"
                    273:   [1]=>
                    274:   &string(10) "b0.changed"
                    275:   [2]=>
                    276:   &string(10) "b0.changed"
                    277: }
                    278: array(3) {
                    279:   [0]=>
                    280:   &string(10) "b1.changed"
                    281:   [1]=>
                    282:   &string(10) "b1.changed"
                    283:   [2]=>
                    284:   &string(10) "b1.changed"
                    285: }
                    286: array(3) {
                    287:   [0]=>
                    288:   &string(10) "b2.changed"
                    289:   [1]=>
                    290:   &string(10) "b2.changed"
                    291:   [2]=>
                    292:   &string(10) "b2.changed"
                    293: }
                    294: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>