Annotation of embedaddon/php/ext/standard/tests/serialize/serialization_miscTypes_001.phpt, revision 1.1.1.2
1.1 misho 1: --TEST--
2: Test serialize() & unserialize() functions: many types
1.1.1.2 ! misho 3: --INI--
! 4: serialize_precision=17
1.1 misho 5: --SKIPIF--
6: <?php
7: if (PHP_INT_SIZE != 4) {
8: die("skip this test is for 32bit platform only");
9: }
10: ?>
11: --FILE--
12: <?php
13: /* Prototype : proto string serialize(mixed variable)
14: * Description: Returns a string representation of variable (which can later be unserialized)
15: * Source code: ext/standard/var.c
16: * Alias to functions:
17: */
18: /* Prototype : proto mixed unserialize(string variable_representation)
19: * Description: Takes a string representation of variable and recreates it
20: * Source code: ext/standard/var.c
21: * Alias to functions:
22: */
23:
24:
25: echo "--- Testing Various Types ---\n";
26:
27: /* unset variable */
28: $unset_var = 10;
29: unset($unset_var);
30: /* array declaration */
31: $arr_var = array(0, 1, -2, 3.333333, "a", array(), array(NULL));
32:
33: $Variation_arr = array(
34: /* Integers */
35: 2147483647,
36: -2147483647,
37: 2147483648,
38: -2147483648,
39:
40: 0xFF00123, // hex integers
41: -0xFF00123,
42: 0x7FFFFFFF,
43: -0x7FFFFFFF,
44: 0x80000000,
45: -0x80000000,
46:
47: 01234567, // octal integers
48: -01234567,
49:
50: /* arrays */
51: array(), // zero elements
52: array(1, 2, 3, 12345666, -2344),
53: array(0, 1, 2, 3.333, -4, -5.555, TRUE, FALSE, NULL, "", '', " ",
54: array(), array(1,2,array()), "string", new stdclass
55: ),
56: &$arr_var, // Reference to an array
57:
58: /* nulls */
59: NULL,
60: null,
61:
62: /* strings */
63: "",
64: '',
65: " ",
66: ' ',
67: "a",
68: "string",
69: 'string',
70: "hello\0",
71: 'hello\0',
72: "123",
73: '123',
74: '\t',
75: "\t",
76:
77: /* booleans */
78: TRUE,
79: true,
80: FALSE,
81: false,
82:
83: /* Mixed types */
84: @TRUE123,
85: "123string",
86: "string123",
87: "NULLstring",
88:
89: /* unset/undefined vars */
90: @$unset_var,
91: @$undefined_var,
92: );
93:
94: /* Loop through to test each element in the above array */
95: for( $i = 0; $i < count($Variation_arr); $i++ ) {
96:
97: echo "\n-- Iteration $i --\n";
98: echo "after serialization => ";
99: $serialize_data = serialize($Variation_arr[$i]);
100: var_dump( $serialize_data );
101:
102: echo "after unserialization => ";
103: $unserialize_data = unserialize($serialize_data);
104: var_dump( $unserialize_data );
105: }
106:
107: echo "\nDone";
108: ?>
109: --EXPECTF--
110: --- Testing Various Types ---
111:
112: -- Iteration 0 --
113: after serialization => string(13) "i:2147483647;"
114: after unserialization => int(2147483647)
115:
116: -- Iteration 1 --
117: after serialization => string(14) "i:-2147483647;"
118: after unserialization => int(-2147483647)
119:
120: -- Iteration 2 --
121: after serialization => string(13) "d:2147483648;"
122: after unserialization => float(2147483648)
123:
124: -- Iteration 3 --
125: after serialization => string(14) "d:-2147483648;"
126: after unserialization => float(-2147483648)
127:
128: -- Iteration 4 --
129: after serialization => string(12) "i:267387171;"
130: after unserialization => int(267387171)
131:
132: -- Iteration 5 --
133: after serialization => string(13) "i:-267387171;"
134: after unserialization => int(-267387171)
135:
136: -- Iteration 6 --
137: after serialization => string(13) "i:2147483647;"
138: after unserialization => int(2147483647)
139:
140: -- Iteration 7 --
141: after serialization => string(14) "i:-2147483647;"
142: after unserialization => int(-2147483647)
143:
144: -- Iteration 8 --
145: after serialization => string(13) "d:2147483648;"
146: after unserialization => float(2147483648)
147:
148: -- Iteration 9 --
149: after serialization => string(14) "d:-2147483648;"
150: after unserialization => float(-2147483648)
151:
152: -- Iteration 10 --
153: after serialization => string(9) "i:342391;"
154: after unserialization => int(342391)
155:
156: -- Iteration 11 --
157: after serialization => string(10) "i:-342391;"
158: after unserialization => int(-342391)
159:
160: -- Iteration 12 --
161: after serialization => string(6) "a:0:{}"
162: after unserialization => array(0) {
163: }
164:
165: -- Iteration 13 --
166: after serialization => string(57) "a:5:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:12345666;i:4;i:-2344;}"
167: after unserialization => array(5) {
168: [0]=>
169: int(1)
170: [1]=>
171: int(2)
172: [2]=>
173: int(3)
174: [3]=>
175: int(12345666)
176: [4]=>
177: int(-2344)
178: }
179:
180: -- Iteration 14 --
181: after serialization => string(239) "a:16:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;d:3.3330000000000002;i:4;i:-4;i:5;d:-5.5549999999999997;i:6;b:1;i:7;b:0;i:8;N;i:9;s:0:"";i:10;s:0:"";i:11;s:1:" ";i:12;a:0:{}i:13;a:3:{i:0;i:1;i:1;i:2;i:2;a:0:{}}i:14;s:6:"string";i:15;O:8:"stdClass":0:{}}"
182: after unserialization => array(16) {
183: [0]=>
184: int(0)
185: [1]=>
186: int(1)
187: [2]=>
188: int(2)
189: [3]=>
190: float(3.333)
191: [4]=>
192: int(-4)
193: [5]=>
194: float(-5.555)
195: [6]=>
196: bool(true)
197: [7]=>
198: bool(false)
199: [8]=>
200: NULL
201: [9]=>
202: string(0) ""
203: [10]=>
204: string(0) ""
205: [11]=>
206: string(1) " "
207: [12]=>
208: array(0) {
209: }
210: [13]=>
211: array(3) {
212: [0]=>
213: int(1)
214: [1]=>
215: int(2)
216: [2]=>
217: array(0) {
218: }
219: }
220: [14]=>
221: string(6) "string"
222: [15]=>
223: object(stdClass)#2 (0) {
224: }
225: }
226:
227: -- Iteration 15 --
228: after serialization => string(94) "a:7:{i:0;i:0;i:1;i:1;i:2;i:-2;i:3;d:3.3333330000000001;i:4;s:1:"a";i:5;a:0:{}i:6;a:1:{i:0;N;}}"
229: after unserialization => array(7) {
230: [0]=>
231: int(0)
232: [1]=>
233: int(1)
234: [2]=>
235: int(-2)
236: [3]=>
237: float(3.333333)
238: [4]=>
239: string(1) "a"
240: [5]=>
241: array(0) {
242: }
243: [6]=>
244: array(1) {
245: [0]=>
246: NULL
247: }
248: }
249:
250: -- Iteration 16 --
251: after serialization => string(2) "N;"
252: after unserialization => NULL
253:
254: -- Iteration 17 --
255: after serialization => string(2) "N;"
256: after unserialization => NULL
257:
258: -- Iteration 18 --
259: after serialization => string(7) "s:0:"";"
260: after unserialization => string(0) ""
261:
262: -- Iteration 19 --
263: after serialization => string(7) "s:0:"";"
264: after unserialization => string(0) ""
265:
266: -- Iteration 20 --
267: after serialization => string(8) "s:1:" ";"
268: after unserialization => string(1) " "
269:
270: -- Iteration 21 --
271: after serialization => string(8) "s:1:" ";"
272: after unserialization => string(1) " "
273:
274: -- Iteration 22 --
275: after serialization => string(8) "s:1:"a";"
276: after unserialization => string(1) "a"
277:
278: -- Iteration 23 --
279: after serialization => string(13) "s:6:"string";"
280: after unserialization => string(6) "string"
281:
282: -- Iteration 24 --
283: after serialization => string(13) "s:6:"string";"
284: after unserialization => string(6) "string"
285:
286: -- Iteration 25 --
287: after serialization => string(13) "s:6:"hello ";"
288: after unserialization => string(6) "hello "
289:
290: -- Iteration 26 --
291: after serialization => string(14) "s:7:"hello\0";"
292: after unserialization => string(7) "hello\0"
293:
294: -- Iteration 27 --
295: after serialization => string(10) "s:3:"123";"
296: after unserialization => string(3) "123"
297:
298: -- Iteration 28 --
299: after serialization => string(10) "s:3:"123";"
300: after unserialization => string(3) "123"
301:
302: -- Iteration 29 --
303: after serialization => string(9) "s:2:"\t";"
304: after unserialization => string(2) "\t"
305:
306: -- Iteration 30 --
307: after serialization => string(8) "s:1:" ";"
308: after unserialization => string(1) " "
309:
310: -- Iteration 31 --
311: after serialization => string(4) "b:1;"
312: after unserialization => bool(true)
313:
314: -- Iteration 32 --
315: after serialization => string(4) "b:1;"
316: after unserialization => bool(true)
317:
318: -- Iteration 33 --
319: after serialization => string(4) "b:0;"
320: after unserialization => bool(false)
321:
322: -- Iteration 34 --
323: after serialization => string(4) "b:0;"
324: after unserialization => bool(false)
325:
326: -- Iteration 35 --
327: after serialization => string(14) "s:7:"TRUE123";"
328: after unserialization => string(7) "TRUE123"
329:
330: -- Iteration 36 --
331: after serialization => string(16) "s:9:"123string";"
332: after unserialization => string(9) "123string"
333:
334: -- Iteration 37 --
335: after serialization => string(16) "s:9:"string123";"
336: after unserialization => string(9) "string123"
337:
338: -- Iteration 38 --
339: after serialization => string(18) "s:10:"NULLstring";"
340: after unserialization => string(10) "NULLstring"
341:
342: -- Iteration 39 --
343: after serialization => string(2) "N;"
344: after unserialization => NULL
345:
346: -- Iteration 40 --
347: after serialization => string(2) "N;"
348: after unserialization => NULL
349:
350: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>