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

1.1     ! misho       1: --TEST--
        !             2: Object serialization / unserialization: properties reference containing object 
        !             3: --INI--
        !             4: error_reporting = E_ALL & ~E_STRICT
        !             5: --FILE--
        !             6: <?php
        !             7: 
        !             8: function check(&$obj) {
        !             9:        var_dump($obj);
        !            10:        $ser = serialize($obj);
        !            11:        var_dump($ser);
        !            12:        
        !            13:        $uobj = unserialize($ser);
        !            14:        var_dump($uobj);
        !            15:        $uobj->a = "obj->a.changed";
        !            16:        var_dump($uobj);
        !            17:        $uobj->b = "obj->b.changed";
        !            18:        var_dump($uobj);
        !            19:        $uobj->c = "obj->c.changed";
        !            20:        var_dump($uobj);        
        !            21: }
        !            22: 
        !            23: echo "\n\n--- a refs container:\n";
        !            24: $ext = 1;
        !            25: $obj = new stdClass;
        !            26: $obj->a = &$obj;
        !            27: $obj->b = 1;
        !            28: $obj->c = 1;
        !            29: check($obj);
        !            30: 
        !            31: echo "\n\n--- a eqs container:\n";
        !            32: $ext = 1;
        !            33: $obj = new stdClass;
        !            34: $obj->a = $obj;
        !            35: $obj->b = 1;
        !            36: $obj->c = 1;
        !            37: check($obj);
        !            38: 
        !            39: echo "\n\n--- a,b ref container:\n";
        !            40: $ext = 1;
        !            41: $obj = new stdClass;
        !            42: $obj->a = &$obj;
        !            43: $obj->b = &$obj;
        !            44: $obj->c = 1;
        !            45: check($obj);
        !            46: 
        !            47: echo "\n\n--- a,b eq container:\n";
        !            48: $ext = 1;
        !            49: $obj = new stdClass;
        !            50: $obj->a = $obj;
        !            51: $obj->b = $obj;
        !            52: $obj->c = 1;
        !            53: check($obj);
        !            54: 
        !            55: echo "\n\n--- a,b,c ref container:\n";
        !            56: $ext = 1;
        !            57: $obj = new stdClass;
        !            58: $obj->a = &$obj;
        !            59: $obj->b = &$obj;
        !            60: $obj->c = &$obj;
        !            61: check($obj);
        !            62: 
        !            63: echo "\n\n--- a,b,c eq container:\n";
        !            64: $ext = 1;
        !            65: $obj = new stdClass;
        !            66: $obj->a = $obj;
        !            67: $obj->b = $obj;
        !            68: $obj->c = $obj;
        !            69: check($obj);
        !            70: 
        !            71: echo "Done";
        !            72: ?>
        !            73: --EXPECTF--
        !            74: --- a refs container:
        !            75: object(stdClass)#%d (3) {
        !            76:   ["a"]=>
        !            77:   *RECURSION*
        !            78:   ["b"]=>
        !            79:   int(1)
        !            80:   ["c"]=>
        !            81:   int(1)
        !            82: }
        !            83: string(55) "O:8:"stdClass":3:{s:1:"a";R:1;s:1:"b";i:1;s:1:"c";i:1;}"
        !            84: object(stdClass)#%d (3) {
        !            85:   ["a"]=>
        !            86:   *RECURSION*
        !            87:   ["b"]=>
        !            88:   int(1)
        !            89:   ["c"]=>
        !            90:   int(1)
        !            91: }
        !            92: object(stdClass)#%d (3) {
        !            93:   ["a"]=>
        !            94:   string(14) "obj->a.changed"
        !            95:   ["b"]=>
        !            96:   int(1)
        !            97:   ["c"]=>
        !            98:   int(1)
        !            99: }
        !           100: object(stdClass)#%d (3) {
        !           101:   ["a"]=>
        !           102:   string(14) "obj->a.changed"
        !           103:   ["b"]=>
        !           104:   string(14) "obj->b.changed"
        !           105:   ["c"]=>
        !           106:   int(1)
        !           107: }
        !           108: object(stdClass)#%d (3) {
        !           109:   ["a"]=>
        !           110:   string(14) "obj->a.changed"
        !           111:   ["b"]=>
        !           112:   string(14) "obj->b.changed"
        !           113:   ["c"]=>
        !           114:   string(14) "obj->c.changed"
        !           115: }
        !           116: 
        !           117: 
        !           118: --- a eqs container:
        !           119: object(stdClass)#%d (3) {
        !           120:   ["a"]=>
        !           121:   *RECURSION*
        !           122:   ["b"]=>
        !           123:   int(1)
        !           124:   ["c"]=>
        !           125:   int(1)
        !           126: }
        !           127: string(55) "O:8:"stdClass":3:{s:1:"a";r:1;s:1:"b";i:1;s:1:"c";i:1;}"
        !           128: object(stdClass)#%d (3) {
        !           129:   ["a"]=>
        !           130:   *RECURSION*
        !           131:   ["b"]=>
        !           132:   int(1)
        !           133:   ["c"]=>
        !           134:   int(1)
        !           135: }
        !           136: object(stdClass)#%d (3) {
        !           137:   ["a"]=>
        !           138:   string(14) "obj->a.changed"
        !           139:   ["b"]=>
        !           140:   int(1)
        !           141:   ["c"]=>
        !           142:   int(1)
        !           143: }
        !           144: object(stdClass)#%d (3) {
        !           145:   ["a"]=>
        !           146:   string(14) "obj->a.changed"
        !           147:   ["b"]=>
        !           148:   string(14) "obj->b.changed"
        !           149:   ["c"]=>
        !           150:   int(1)
        !           151: }
        !           152: object(stdClass)#%d (3) {
        !           153:   ["a"]=>
        !           154:   string(14) "obj->a.changed"
        !           155:   ["b"]=>
        !           156:   string(14) "obj->b.changed"
        !           157:   ["c"]=>
        !           158:   string(14) "obj->c.changed"
        !           159: }
        !           160: 
        !           161: 
        !           162: --- a,b ref container:
        !           163: object(stdClass)#%d (3) {
        !           164:   ["a"]=>
        !           165:   *RECURSION*
        !           166:   ["b"]=>
        !           167:   *RECURSION*
        !           168:   ["c"]=>
        !           169:   int(1)
        !           170: }
        !           171: string(55) "O:8:"stdClass":3:{s:1:"a";R:1;s:1:"b";R:1;s:1:"c";i:1;}"
        !           172: object(stdClass)#%d (3) {
        !           173:   ["a"]=>
        !           174:   *RECURSION*
        !           175:   ["b"]=>
        !           176:   *RECURSION*
        !           177:   ["c"]=>
        !           178:   int(1)
        !           179: }
        !           180: object(stdClass)#%d (3) {
        !           181:   ["a"]=>
        !           182:   &string(14) "obj->a.changed"
        !           183:   ["b"]=>
        !           184:   &string(14) "obj->a.changed"
        !           185:   ["c"]=>
        !           186:   int(1)
        !           187: }
        !           188: object(stdClass)#%d (3) {
        !           189:   ["a"]=>
        !           190:   &string(14) "obj->b.changed"
        !           191:   ["b"]=>
        !           192:   &string(14) "obj->b.changed"
        !           193:   ["c"]=>
        !           194:   int(1)
        !           195: }
        !           196: object(stdClass)#%d (3) {
        !           197:   ["a"]=>
        !           198:   &string(14) "obj->b.changed"
        !           199:   ["b"]=>
        !           200:   &string(14) "obj->b.changed"
        !           201:   ["c"]=>
        !           202:   string(14) "obj->c.changed"
        !           203: }
        !           204: 
        !           205: 
        !           206: --- a,b eq container:
        !           207: object(stdClass)#%d (3) {
        !           208:   ["a"]=>
        !           209:   *RECURSION*
        !           210:   ["b"]=>
        !           211:   *RECURSION*
        !           212:   ["c"]=>
        !           213:   int(1)
        !           214: }
        !           215: string(55) "O:8:"stdClass":3:{s:1:"a";r:1;s:1:"b";r:1;s:1:"c";i:1;}"
        !           216: object(stdClass)#%d (3) {
        !           217:   ["a"]=>
        !           218:   *RECURSION*
        !           219:   ["b"]=>
        !           220:   *RECURSION*
        !           221:   ["c"]=>
        !           222:   int(1)
        !           223: }
        !           224: object(stdClass)#%d (3) {
        !           225:   ["a"]=>
        !           226:   string(14) "obj->a.changed"
        !           227:   ["b"]=>
        !           228:   *RECURSION*
        !           229:   ["c"]=>
        !           230:   int(1)
        !           231: }
        !           232: object(stdClass)#%d (3) {
        !           233:   ["a"]=>
        !           234:   string(14) "obj->a.changed"
        !           235:   ["b"]=>
        !           236:   string(14) "obj->b.changed"
        !           237:   ["c"]=>
        !           238:   int(1)
        !           239: }
        !           240: object(stdClass)#%d (3) {
        !           241:   ["a"]=>
        !           242:   string(14) "obj->a.changed"
        !           243:   ["b"]=>
        !           244:   string(14) "obj->b.changed"
        !           245:   ["c"]=>
        !           246:   string(14) "obj->c.changed"
        !           247: }
        !           248: 
        !           249: 
        !           250: --- a,b,c ref container:
        !           251: object(stdClass)#%d (3) {
        !           252:   ["a"]=>
        !           253:   *RECURSION*
        !           254:   ["b"]=>
        !           255:   *RECURSION*
        !           256:   ["c"]=>
        !           257:   *RECURSION*
        !           258: }
        !           259: string(55) "O:8:"stdClass":3:{s:1:"a";R:1;s:1:"b";R:1;s:1:"c";R:1;}"
        !           260: object(stdClass)#%d (3) {
        !           261:   ["a"]=>
        !           262:   *RECURSION*
        !           263:   ["b"]=>
        !           264:   *RECURSION*
        !           265:   ["c"]=>
        !           266:   *RECURSION*
        !           267: }
        !           268: object(stdClass)#%d (3) {
        !           269:   ["a"]=>
        !           270:   &string(14) "obj->a.changed"
        !           271:   ["b"]=>
        !           272:   &string(14) "obj->a.changed"
        !           273:   ["c"]=>
        !           274:   &string(14) "obj->a.changed"
        !           275: }
        !           276: object(stdClass)#%d (3) {
        !           277:   ["a"]=>
        !           278:   &string(14) "obj->b.changed"
        !           279:   ["b"]=>
        !           280:   &string(14) "obj->b.changed"
        !           281:   ["c"]=>
        !           282:   &string(14) "obj->b.changed"
        !           283: }
        !           284: object(stdClass)#%d (3) {
        !           285:   ["a"]=>
        !           286:   &string(14) "obj->c.changed"
        !           287:   ["b"]=>
        !           288:   &string(14) "obj->c.changed"
        !           289:   ["c"]=>
        !           290:   &string(14) "obj->c.changed"
        !           291: }
        !           292: 
        !           293: 
        !           294: --- a,b,c eq container:
        !           295: object(stdClass)#%d (3) {
        !           296:   ["a"]=>
        !           297:   *RECURSION*
        !           298:   ["b"]=>
        !           299:   *RECURSION*
        !           300:   ["c"]=>
        !           301:   *RECURSION*
        !           302: }
        !           303: string(55) "O:8:"stdClass":3:{s:1:"a";r:1;s:1:"b";r:1;s:1:"c";r:1;}"
        !           304: object(stdClass)#%d (3) {
        !           305:   ["a"]=>
        !           306:   *RECURSION*
        !           307:   ["b"]=>
        !           308:   *RECURSION*
        !           309:   ["c"]=>
        !           310:   *RECURSION*
        !           311: }
        !           312: object(stdClass)#%d (3) {
        !           313:   ["a"]=>
        !           314:   string(14) "obj->a.changed"
        !           315:   ["b"]=>
        !           316:   *RECURSION*
        !           317:   ["c"]=>
        !           318:   *RECURSION*
        !           319: }
        !           320: object(stdClass)#%d (3) {
        !           321:   ["a"]=>
        !           322:   string(14) "obj->a.changed"
        !           323:   ["b"]=>
        !           324:   string(14) "obj->b.changed"
        !           325:   ["c"]=>
        !           326:   *RECURSION*
        !           327: }
        !           328: object(stdClass)#%d (3) {
        !           329:   ["a"]=>
        !           330:   string(14) "obj->a.changed"
        !           331:   ["b"]=>
        !           332:   string(14) "obj->b.changed"
        !           333:   ["c"]=>
        !           334:   string(14) "obj->c.changed"
        !           335: }
        !           336: Done

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