import zend standard tests
[hiphop-php.git] / hphp / test / zend / bad / ext-standard-serialize / serialization_arrays_002.php
blobb0fc02aa9a6773f327a0c32e1621f7b0bc144176
1 <?php
2 /* Prototype : proto string serialize(mixed variable)
3 * Description: Returns a string representation of variable (which can later be unserialized)
4 * Source code: ext/standard/var.c
5 * Alias to functions:
6 */
7 /* Prototype : proto mixed unserialize(string variable_representation)
8 * Description: Takes a string representation of variable and recreates it
9 * Source code: ext/standard/var.c
10 * Alias to functions:
13 function check(&$a) {
14 var_dump($a);
15 $ser = serialize($a);
16 var_dump($ser);
18 $b = unserialize($ser);
19 var_dump($b);
20 $b[0] = "b0.changed";
21 var_dump($b);
22 $b[1] = "b1.changed";
23 var_dump($b);
24 $b[2] = "b2.changed";
25 var_dump($b);
28 echo "\n\n--- No references:\n";
29 $a = array();
30 $a[0] = 1;
31 $a[1] = 1;
32 $a[2] = 1;
33 check($a);
35 echo "\n\n--- 0 refs 1:\n";
36 $a = array();
37 $a[0] = &$a[1];
38 $a[1] = 1;
39 $a[2] = 1;
40 check($a);
42 echo "\n\n--- 0 refs 2:\n";
43 $a = array();
44 $a[0] = &$a[2];
45 $a[1] = 1;
46 $a[2] = 1;
47 check($a);
49 echo "\n\n--- 1 refs 0:\n";
50 $a = array();
51 $a[0] = 1;
52 $a[1] = &$a[0];
53 $a[2] = 1;
54 check($a);
56 echo "\n\n--- 1 refs 2:\n";
57 $a = array();
58 $a[0] = 1;
59 $a[1] = &$a[2];
60 $a[2] = 1;
61 check($a);
63 echo "\n\n--- 2 refs 0:\n";
64 $a = array();
65 $a[0] = 1;
66 $a[1] = 1;
67 $a[2] = &$a[0];
68 check($a);
70 echo "\n\n--- 2 refs 1:\n";
71 $a = array();
72 $a[0] = 1;
73 $a[1] = 1;
74 $a[2] = &$a[1];
75 check($a);
77 echo "\n\n--- 0,1 ref 2:\n";
78 $a = array();
79 $a[0] = &$a[2];
80 $a[1] = &$a[2];
81 $a[2] = 1;
82 check($a);
84 echo "\n\n--- 0,2 ref 1:\n";
85 $a = array();
86 $a[0] = &$a[1];
87 $a[1] = 1;
88 $a[2] = &$a[1];
89 check($a);
91 echo "\n\n--- 1,2 ref 0:\n";
92 $a = array();
93 $a[0] = 1;
94 $a[1] = &$a[0];
95 $a[2] = &$a[0];
96 check($a);
98 echo "Done";