Annotation of embedaddon/php/ext/standard/tests/serialize/serialization_arrays_003.phpt, revision 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>