Annotation of embedaddon/php/ext/standard/tests/serialize/serialization_arrays_002.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: serialization: arrays with references amonst elements
        !             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--- No references:\n";
        !            32: $a = array();
        !            33: $a[0] = 1;
        !            34: $a[1] = 1;
        !            35: $a[2] = 1;
        !            36: check($a);
        !            37: 
        !            38: echo "\n\n--- 0 refs 1:\n";
        !            39: $a = array();
        !            40: $a[0] = &$a[1];
        !            41: $a[1] = 1;
        !            42: $a[2] = 1;
        !            43: check($a);
        !            44: 
        !            45: echo "\n\n--- 0 refs 2:\n";
        !            46: $a = array();
        !            47: $a[0] = &$a[2];
        !            48: $a[1] = 1;
        !            49: $a[2] = 1;
        !            50: check($a);
        !            51: 
        !            52: echo "\n\n--- 1 refs 0:\n";
        !            53: $a = array();
        !            54: $a[0] = 1;
        !            55: $a[1] = &$a[0];
        !            56: $a[2] = 1;
        !            57: check($a);
        !            58: 
        !            59: echo "\n\n--- 1 refs 2:\n";
        !            60: $a = array();
        !            61: $a[0] = 1;
        !            62: $a[1] = &$a[2];
        !            63: $a[2] = 1;
        !            64: check($a);
        !            65: 
        !            66: echo "\n\n--- 2 refs 0:\n";
        !            67: $a = array();
        !            68: $a[0] = 1;
        !            69: $a[1] = 1;
        !            70: $a[2] = &$a[0];
        !            71: check($a);
        !            72: 
        !            73: echo "\n\n--- 2 refs 1:\n";
        !            74: $a = array();
        !            75: $a[0] = 1;
        !            76: $a[1] = 1;
        !            77: $a[2] = &$a[1];
        !            78: check($a);
        !            79: 
        !            80: echo "\n\n--- 0,1 ref 2:\n";
        !            81: $a = array();
        !            82: $a[0] = &$a[2];
        !            83: $a[1] = &$a[2];
        !            84: $a[2] = 1;
        !            85: check($a);
        !            86: 
        !            87: echo "\n\n--- 0,2 ref 1:\n";
        !            88: $a = array();
        !            89: $a[0] = &$a[1];
        !            90: $a[1] = 1;
        !            91: $a[2] = &$a[1];
        !            92: check($a);
        !            93: 
        !            94: echo "\n\n--- 1,2 ref 0:\n";
        !            95: $a = array();
        !            96: $a[0] = 1;
        !            97: $a[1] = &$a[0];
        !            98: $a[2] = &$a[0];
        !            99: check($a);
        !           100: 
        !           101: echo "Done";
        !           102: ?>
        !           103: --EXPECTF--
        !           104: 
        !           105: 
        !           106: --- No references:
        !           107: array(3) {
        !           108:   [0]=>
        !           109:   int(1)
        !           110:   [1]=>
        !           111:   int(1)
        !           112:   [2]=>
        !           113:   int(1)
        !           114: }
        !           115: string(30) "a:3:{i:0;i:1;i:1;i:1;i:2;i:1;}"
        !           116: array(3) {
        !           117:   [0]=>
        !           118:   int(1)
        !           119:   [1]=>
        !           120:   int(1)
        !           121:   [2]=>
        !           122:   int(1)
        !           123: }
        !           124: array(3) {
        !           125:   [0]=>
        !           126:   string(10) "b0.changed"
        !           127:   [1]=>
        !           128:   int(1)
        !           129:   [2]=>
        !           130:   int(1)
        !           131: }
        !           132: array(3) {
        !           133:   [0]=>
        !           134:   string(10) "b0.changed"
        !           135:   [1]=>
        !           136:   string(10) "b1.changed"
        !           137:   [2]=>
        !           138:   int(1)
        !           139: }
        !           140: array(3) {
        !           141:   [0]=>
        !           142:   string(10) "b0.changed"
        !           143:   [1]=>
        !           144:   string(10) "b1.changed"
        !           145:   [2]=>
        !           146:   string(10) "b2.changed"
        !           147: }
        !           148: 
        !           149: 
        !           150: --- 0 refs 1:
        !           151: array(3) {
        !           152:   [1]=>
        !           153:   &int(1)
        !           154:   [0]=>
        !           155:   &int(1)
        !           156:   [2]=>
        !           157:   int(1)
        !           158: }
        !           159: string(30) "a:3:{i:1;i:1;i:0;R:2;i:2;i:1;}"
        !           160: array(3) {
        !           161:   [1]=>
        !           162:   &int(1)
        !           163:   [0]=>
        !           164:   &int(1)
        !           165:   [2]=>
        !           166:   int(1)
        !           167: }
        !           168: array(3) {
        !           169:   [1]=>
        !           170:   &string(10) "b0.changed"
        !           171:   [0]=>
        !           172:   &string(10) "b0.changed"
        !           173:   [2]=>
        !           174:   int(1)
        !           175: }
        !           176: array(3) {
        !           177:   [1]=>
        !           178:   &string(10) "b1.changed"
        !           179:   [0]=>
        !           180:   &string(10) "b1.changed"
        !           181:   [2]=>
        !           182:   int(1)
        !           183: }
        !           184: array(3) {
        !           185:   [1]=>
        !           186:   &string(10) "b1.changed"
        !           187:   [0]=>
        !           188:   &string(10) "b1.changed"
        !           189:   [2]=>
        !           190:   string(10) "b2.changed"
        !           191: }
        !           192: 
        !           193: 
        !           194: --- 0 refs 2:
        !           195: array(3) {
        !           196:   [2]=>
        !           197:   &int(1)
        !           198:   [0]=>
        !           199:   &int(1)
        !           200:   [1]=>
        !           201:   int(1)
        !           202: }
        !           203: string(30) "a:3:{i:2;i:1;i:0;R:2;i:1;i:1;}"
        !           204: array(3) {
        !           205:   [2]=>
        !           206:   &int(1)
        !           207:   [0]=>
        !           208:   &int(1)
        !           209:   [1]=>
        !           210:   int(1)
        !           211: }
        !           212: array(3) {
        !           213:   [2]=>
        !           214:   &string(10) "b0.changed"
        !           215:   [0]=>
        !           216:   &string(10) "b0.changed"
        !           217:   [1]=>
        !           218:   int(1)
        !           219: }
        !           220: array(3) {
        !           221:   [2]=>
        !           222:   &string(10) "b0.changed"
        !           223:   [0]=>
        !           224:   &string(10) "b0.changed"
        !           225:   [1]=>
        !           226:   string(10) "b1.changed"
        !           227: }
        !           228: array(3) {
        !           229:   [2]=>
        !           230:   &string(10) "b2.changed"
        !           231:   [0]=>
        !           232:   &string(10) "b2.changed"
        !           233:   [1]=>
        !           234:   string(10) "b1.changed"
        !           235: }
        !           236: 
        !           237: 
        !           238: --- 1 refs 0:
        !           239: array(3) {
        !           240:   [0]=>
        !           241:   &int(1)
        !           242:   [1]=>
        !           243:   &int(1)
        !           244:   [2]=>
        !           245:   int(1)
        !           246: }
        !           247: string(30) "a:3:{i:0;i:1;i:1;R:2;i:2;i:1;}"
        !           248: array(3) {
        !           249:   [0]=>
        !           250:   &int(1)
        !           251:   [1]=>
        !           252:   &int(1)
        !           253:   [2]=>
        !           254:   int(1)
        !           255: }
        !           256: array(3) {
        !           257:   [0]=>
        !           258:   &string(10) "b0.changed"
        !           259:   [1]=>
        !           260:   &string(10) "b0.changed"
        !           261:   [2]=>
        !           262:   int(1)
        !           263: }
        !           264: array(3) {
        !           265:   [0]=>
        !           266:   &string(10) "b1.changed"
        !           267:   [1]=>
        !           268:   &string(10) "b1.changed"
        !           269:   [2]=>
        !           270:   int(1)
        !           271: }
        !           272: array(3) {
        !           273:   [0]=>
        !           274:   &string(10) "b1.changed"
        !           275:   [1]=>
        !           276:   &string(10) "b1.changed"
        !           277:   [2]=>
        !           278:   string(10) "b2.changed"
        !           279: }
        !           280: 
        !           281: 
        !           282: --- 1 refs 2:
        !           283: array(3) {
        !           284:   [0]=>
        !           285:   int(1)
        !           286:   [2]=>
        !           287:   &int(1)
        !           288:   [1]=>
        !           289:   &int(1)
        !           290: }
        !           291: string(30) "a:3:{i:0;i:1;i:2;i:1;i:1;R:3;}"
        !           292: array(3) {
        !           293:   [0]=>
        !           294:   int(1)
        !           295:   [2]=>
        !           296:   &int(1)
        !           297:   [1]=>
        !           298:   &int(1)
        !           299: }
        !           300: array(3) {
        !           301:   [0]=>
        !           302:   string(10) "b0.changed"
        !           303:   [2]=>
        !           304:   &int(1)
        !           305:   [1]=>
        !           306:   &int(1)
        !           307: }
        !           308: array(3) {
        !           309:   [0]=>
        !           310:   string(10) "b0.changed"
        !           311:   [2]=>
        !           312:   &string(10) "b1.changed"
        !           313:   [1]=>
        !           314:   &string(10) "b1.changed"
        !           315: }
        !           316: array(3) {
        !           317:   [0]=>
        !           318:   string(10) "b0.changed"
        !           319:   [2]=>
        !           320:   &string(10) "b2.changed"
        !           321:   [1]=>
        !           322:   &string(10) "b2.changed"
        !           323: }
        !           324: 
        !           325: 
        !           326: --- 2 refs 0:
        !           327: array(3) {
        !           328:   [0]=>
        !           329:   &int(1)
        !           330:   [1]=>
        !           331:   int(1)
        !           332:   [2]=>
        !           333:   &int(1)
        !           334: }
        !           335: string(30) "a:3:{i:0;i:1;i:1;i:1;i:2;R:2;}"
        !           336: array(3) {
        !           337:   [0]=>
        !           338:   &int(1)
        !           339:   [1]=>
        !           340:   int(1)
        !           341:   [2]=>
        !           342:   &int(1)
        !           343: }
        !           344: array(3) {
        !           345:   [0]=>
        !           346:   &string(10) "b0.changed"
        !           347:   [1]=>
        !           348:   int(1)
        !           349:   [2]=>
        !           350:   &string(10) "b0.changed"
        !           351: }
        !           352: array(3) {
        !           353:   [0]=>
        !           354:   &string(10) "b0.changed"
        !           355:   [1]=>
        !           356:   string(10) "b1.changed"
        !           357:   [2]=>
        !           358:   &string(10) "b0.changed"
        !           359: }
        !           360: array(3) {
        !           361:   [0]=>
        !           362:   &string(10) "b2.changed"
        !           363:   [1]=>
        !           364:   string(10) "b1.changed"
        !           365:   [2]=>
        !           366:   &string(10) "b2.changed"
        !           367: }
        !           368: 
        !           369: 
        !           370: --- 2 refs 1:
        !           371: array(3) {
        !           372:   [0]=>
        !           373:   int(1)
        !           374:   [1]=>
        !           375:   &int(1)
        !           376:   [2]=>
        !           377:   &int(1)
        !           378: }
        !           379: string(30) "a:3:{i:0;i:1;i:1;i:1;i:2;R:3;}"
        !           380: array(3) {
        !           381:   [0]=>
        !           382:   int(1)
        !           383:   [1]=>
        !           384:   &int(1)
        !           385:   [2]=>
        !           386:   &int(1)
        !           387: }
        !           388: array(3) {
        !           389:   [0]=>
        !           390:   string(10) "b0.changed"
        !           391:   [1]=>
        !           392:   &int(1)
        !           393:   [2]=>
        !           394:   &int(1)
        !           395: }
        !           396: array(3) {
        !           397:   [0]=>
        !           398:   string(10) "b0.changed"
        !           399:   [1]=>
        !           400:   &string(10) "b1.changed"
        !           401:   [2]=>
        !           402:   &string(10) "b1.changed"
        !           403: }
        !           404: array(3) {
        !           405:   [0]=>
        !           406:   string(10) "b0.changed"
        !           407:   [1]=>
        !           408:   &string(10) "b2.changed"
        !           409:   [2]=>
        !           410:   &string(10) "b2.changed"
        !           411: }
        !           412: 
        !           413: 
        !           414: --- 0,1 ref 2:
        !           415: array(3) {
        !           416:   [2]=>
        !           417:   &int(1)
        !           418:   [0]=>
        !           419:   &int(1)
        !           420:   [1]=>
        !           421:   &int(1)
        !           422: }
        !           423: string(30) "a:3:{i:2;i:1;i:0;R:2;i:1;R:2;}"
        !           424: array(3) {
        !           425:   [2]=>
        !           426:   &int(1)
        !           427:   [0]=>
        !           428:   &int(1)
        !           429:   [1]=>
        !           430:   &int(1)
        !           431: }
        !           432: array(3) {
        !           433:   [2]=>
        !           434:   &string(10) "b0.changed"
        !           435:   [0]=>
        !           436:   &string(10) "b0.changed"
        !           437:   [1]=>
        !           438:   &string(10) "b0.changed"
        !           439: }
        !           440: array(3) {
        !           441:   [2]=>
        !           442:   &string(10) "b1.changed"
        !           443:   [0]=>
        !           444:   &string(10) "b1.changed"
        !           445:   [1]=>
        !           446:   &string(10) "b1.changed"
        !           447: }
        !           448: array(3) {
        !           449:   [2]=>
        !           450:   &string(10) "b2.changed"
        !           451:   [0]=>
        !           452:   &string(10) "b2.changed"
        !           453:   [1]=>
        !           454:   &string(10) "b2.changed"
        !           455: }
        !           456: 
        !           457: 
        !           458: --- 0,2 ref 1:
        !           459: array(3) {
        !           460:   [1]=>
        !           461:   &int(1)
        !           462:   [0]=>
        !           463:   &int(1)
        !           464:   [2]=>
        !           465:   &int(1)
        !           466: }
        !           467: string(30) "a:3:{i:1;i:1;i:0;R:2;i:2;R:2;}"
        !           468: array(3) {
        !           469:   [1]=>
        !           470:   &int(1)
        !           471:   [0]=>
        !           472:   &int(1)
        !           473:   [2]=>
        !           474:   &int(1)
        !           475: }
        !           476: array(3) {
        !           477:   [1]=>
        !           478:   &string(10) "b0.changed"
        !           479:   [0]=>
        !           480:   &string(10) "b0.changed"
        !           481:   [2]=>
        !           482:   &string(10) "b0.changed"
        !           483: }
        !           484: array(3) {
        !           485:   [1]=>
        !           486:   &string(10) "b1.changed"
        !           487:   [0]=>
        !           488:   &string(10) "b1.changed"
        !           489:   [2]=>
        !           490:   &string(10) "b1.changed"
        !           491: }
        !           492: array(3) {
        !           493:   [1]=>
        !           494:   &string(10) "b2.changed"
        !           495:   [0]=>
        !           496:   &string(10) "b2.changed"
        !           497:   [2]=>
        !           498:   &string(10) "b2.changed"
        !           499: }
        !           500: 
        !           501: 
        !           502: --- 1,2 ref 0:
        !           503: array(3) {
        !           504:   [0]=>
        !           505:   &int(1)
        !           506:   [1]=>
        !           507:   &int(1)
        !           508:   [2]=>
        !           509:   &int(1)
        !           510: }
        !           511: string(30) "a:3:{i:0;i:1;i:1;R:2;i:2;R:2;}"
        !           512: array(3) {
        !           513:   [0]=>
        !           514:   &int(1)
        !           515:   [1]=>
        !           516:   &int(1)
        !           517:   [2]=>
        !           518:   &int(1)
        !           519: }
        !           520: array(3) {
        !           521:   [0]=>
        !           522:   &string(10) "b0.changed"
        !           523:   [1]=>
        !           524:   &string(10) "b0.changed"
        !           525:   [2]=>
        !           526:   &string(10) "b0.changed"
        !           527: }
        !           528: array(3) {
        !           529:   [0]=>
        !           530:   &string(10) "b1.changed"
        !           531:   [1]=>
        !           532:   &string(10) "b1.changed"
        !           533:   [2]=>
        !           534:   &string(10) "b1.changed"
        !           535: }
        !           536: array(3) {
        !           537:   [0]=>
        !           538:   &string(10) "b2.changed"
        !           539:   [1]=>
        !           540:   &string(10) "b2.changed"
        !           541:   [2]=>
        !           542:   &string(10) "b2.changed"
        !           543: }
        !           544: Done

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