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