Annotation of embedaddon/php/ext/standard/tests/serialize/serialization_arrays_001.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Test serialize() & unserialize() functions: arrays (circular references)
! 3: --INI--
! 4: serialize_precision=100
! 5: --FILE--
! 6: <?php
! 7: /* Prototype : proto string serialize(mixed variable)
! 8: * Description: Returns a string representation of variable (which can later be unserialized)
! 9: * Source code: ext/standard/var.c
! 10: * Alias to functions:
! 11: */
! 12: /* Prototype : proto mixed unserialize(string variable_representation)
! 13: * Description: Takes a string representation of variable and recreates it
! 14: * Source code: ext/standard/var.c
! 15: * Alias to functions:
! 16: */
! 17:
! 18: echo "\n--- Testing Circular reference of an array ---\n";
! 19:
! 20: echo "-- Normal array --\n";
! 21: $arr_circ = array(0, 1, -2, 3.333333, "a", array(), &$arr_circ);
! 22: $serialize_data = serialize($arr_circ);
! 23: var_dump( $serialize_data );
! 24: $arr_circ = unserialize($serialize_data);
! 25: var_dump( $arr_circ );
! 26:
! 27: echo "\n-- Associative array --\n";
! 28: $arr_asso = array("a" => "test");
! 29: $arr_asso[ "b" ] = &$arr_asso[ "a" ];
! 30: var_dump($arr_asso);
! 31: $serialize_data = serialize($arr_asso);
! 32: var_dump($serialize_data);
! 33: $arr_asso = unserialize($serialize_data);
! 34: var_dump($arr_asso);
! 35:
! 36: echo "\nDone";
! 37: ?>
! 38: --EXPECTF--
! 39: --- Testing Circular reference of an array ---
! 40: -- Normal array --
! 41: string(238) "a:7:{i:0;i:0;i:1;i:1;i:2;i:-2;i:3;d:3.333333000000000101437080957111902534961700439453125;i:4;s:1:"a";i:5;a:0:{}i:6;a:7:{i:0;i:0;i:1;i:1;i:2;i:-2;i:3;d:3.333333000000000101437080957111902534961700439453125;i:4;s:1:"a";i:5;a:0:{}i:6;R:8;}}"
! 42: array(7) {
! 43: [0]=>
! 44: int(0)
! 45: [1]=>
! 46: int(1)
! 47: [2]=>
! 48: int(-2)
! 49: [3]=>
! 50: float(3.333333)
! 51: [4]=>
! 52: string(1) "a"
! 53: [5]=>
! 54: array(0) {
! 55: }
! 56: [6]=>
! 57: &array(7) {
! 58: [0]=>
! 59: int(0)
! 60: [1]=>
! 61: int(1)
! 62: [2]=>
! 63: int(-2)
! 64: [3]=>
! 65: float(3.333333)
! 66: [4]=>
! 67: string(1) "a"
! 68: [5]=>
! 69: array(0) {
! 70: }
! 71: [6]=>
! 72: *RECURSION*
! 73: }
! 74: }
! 75:
! 76: -- Associative array --
! 77: array(2) {
! 78: ["a"]=>
! 79: &string(4) "test"
! 80: ["b"]=>
! 81: &string(4) "test"
! 82: }
! 83: string(37) "a:2:{s:1:"a";s:4:"test";s:1:"b";R:2;}"
! 84: array(2) {
! 85: ["a"]=>
! 86: &string(4) "test"
! 87: ["b"]=>
! 88: &string(4) "test"
! 89: }
! 90:
! 91: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>