mirror of
https://github.com/php/php-src.git
synced 2024-10-21 08:22:42 +00:00
342 lines
7.4 KiB
PHP
342 lines
7.4 KiB
PHP
--TEST--
|
||
Test serialize() & unserialize() functions: many types
|
||
--FILE--
|
||
<?php
|
||
/* Prototype : proto string serialize(mixed variable)
|
||
* Description: Returns a string representation of variable (which can later be unserialized)
|
||
* Source code: ext/standard/var.c
|
||
* Alias to functions:
|
||
*/
|
||
/* Prototype : proto mixed unserialize(string variable_representation)
|
||
* Description: Takes a string representation of variable and recreates it
|
||
* Source code: ext/standard/var.c
|
||
* Alias to functions:
|
||
*/
|
||
|
||
|
||
echo "--- Testing Various Types ---\n";
|
||
|
||
/* unset variable */
|
||
$unset_var = 10;
|
||
unset($unset_var);
|
||
/* array declaration */
|
||
$arr_var = array(0, 1, -2, 3.333333, "a", array(), array(NULL));
|
||
|
||
$Variation_arr = array(
|
||
/* Integers */
|
||
2147483647,
|
||
-2147483647,
|
||
2147483648,
|
||
-2147483648,
|
||
|
||
0xFF00123, // hex integers
|
||
-0xFF00123,
|
||
0x7FFFFFFF,
|
||
-0x7FFFFFFF,
|
||
0x80000000,
|
||
-0x80000000,
|
||
|
||
01234567, // octal integers
|
||
-01234567,
|
||
|
||
/* arrays */
|
||
array(), // zero elements
|
||
array(1, 2, 3, 12345666, -2344),
|
||
array(0, 1, 2, 3.333, -4, -5.555, TRUE, FALSE, NULL, "", '', " ",
|
||
array(), array(1,2,array()), "string", new stdclass
|
||
),
|
||
&$arr_var, // Reference to an array
|
||
|
||
/* nulls */
|
||
NULL,
|
||
null,
|
||
|
||
/* strings */
|
||
"",
|
||
'',
|
||
" ",
|
||
' ',
|
||
"a",
|
||
"string",
|
||
'string',
|
||
"hello\0",
|
||
'hello\0',
|
||
"123",
|
||
'123',
|
||
'\t',
|
||
"\t",
|
||
|
||
/* booleans */
|
||
TRUE,
|
||
true,
|
||
FALSE,
|
||
false,
|
||
|
||
/* Mixed types */
|
||
@TRUE123,
|
||
"123string",
|
||
"string123",
|
||
"NULLstring",
|
||
|
||
/* unset/undefined vars */
|
||
@$unset_var,
|
||
@$undefined_var,
|
||
);
|
||
|
||
/* Loop through to test each element in the above array */
|
||
for( $i = 0; $i < count($Variation_arr); $i++ ) {
|
||
|
||
echo "\n-- Iteration $i --\n";
|
||
echo "after serialization => ";
|
||
$serialize_data = serialize($Variation_arr[$i]);
|
||
var_dump( $serialize_data );
|
||
|
||
echo "after unserialization => ";
|
||
$unserialize_data = unserialize($serialize_data);
|
||
var_dump( $unserialize_data );
|
||
}
|
||
|
||
echo "\nDone";
|
||
?>
|
||
--EXPECTF--
|
||
--- Testing Various Types ---
|
||
|
||
-- Iteration 0 --
|
||
after serialization => string(13) "i:2147483647;"
|
||
after unserialization => int(2147483647)
|
||
|
||
-- Iteration 1 --
|
||
after serialization => string(14) "i:-2147483647;"
|
||
after unserialization => int(-2147483647)
|
||
|
||
-- Iteration 2 --
|
||
after serialization => string(13) "d:2147483648;"
|
||
after unserialization => float(2147483648)
|
||
|
||
-- Iteration 3 --
|
||
after serialization => string(14) "d:-2147483648;"
|
||
after unserialization => float(-2147483648)
|
||
|
||
-- Iteration 4 --
|
||
after serialization => string(12) "i:267387171;"
|
||
after unserialization => int(267387171)
|
||
|
||
-- Iteration 5 --
|
||
after serialization => string(13) "i:-267387171;"
|
||
after unserialization => int(-267387171)
|
||
|
||
-- Iteration 6 --
|
||
after serialization => string(13) "i:2147483647;"
|
||
after unserialization => int(2147483647)
|
||
|
||
-- Iteration 7 --
|
||
after serialization => string(14) "i:-2147483647;"
|
||
after unserialization => int(-2147483647)
|
||
|
||
-- Iteration 8 --
|
||
after serialization => string(13) "d:2147483648;"
|
||
after unserialization => float(2147483648)
|
||
|
||
-- Iteration 9 --
|
||
after serialization => string(14) "d:-2147483648;"
|
||
after unserialization => float(-2147483648)
|
||
|
||
-- Iteration 10 --
|
||
after serialization => string(9) "i:342391;"
|
||
after unserialization => int(342391)
|
||
|
||
-- Iteration 11 --
|
||
after serialization => string(10) "i:-342391;"
|
||
after unserialization => int(-342391)
|
||
|
||
-- Iteration 12 --
|
||
after serialization => string(6) "a:0:{}"
|
||
after unserialization => array(0) {
|
||
}
|
||
|
||
-- Iteration 13 --
|
||
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;}"
|
||
after unserialization => array(5) {
|
||
[0]=>
|
||
int(1)
|
||
[1]=>
|
||
int(2)
|
||
[2]=>
|
||
int(3)
|
||
[3]=>
|
||
int(12345666)
|
||
[4]=>
|
||
int(-2344)
|
||
}
|
||
|
||
-- Iteration 14 --
|
||
after serialization => string(303) "a:16:{i:0;i:0;i:1;i:1;i:2;i:2;i:3;d:3.3330000000000001847411112976260483264923095703125;i:4;i:-4;i:5;d:-5.55499999999999971578290569595992565155029296875;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:{}}"
|
||
after unserialization => array(16) {
|
||
[0]=>
|
||
int(0)
|
||
[1]=>
|
||
int(1)
|
||
[2]=>
|
||
int(2)
|
||
[3]=>
|
||
float(3.333)
|
||
[4]=>
|
||
int(-4)
|
||
[5]=>
|
||
float(-5.555)
|
||
[6]=>
|
||
bool(true)
|
||
[7]=>
|
||
bool(false)
|
||
[8]=>
|
||
NULL
|
||
[9]=>
|
||
string(0) ""
|
||
[10]=>
|
||
string(0) ""
|
||
[11]=>
|
||
string(1) " "
|
||
[12]=>
|
||
array(0) {
|
||
}
|
||
[13]=>
|
||
array(3) {
|
||
[0]=>
|
||
int(1)
|
||
[1]=>
|
||
int(2)
|
||
[2]=>
|
||
array(0) {
|
||
}
|
||
}
|
||
[14]=>
|
||
string(6) "string"
|
||
[15]=>
|
||
object(stdClass)#2 (0) {
|
||
}
|
||
}
|
||
|
||
-- Iteration 15 --
|
||
after serialization => string(129) "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:1:{i:0;N;}}"
|
||
after unserialization => array(7) {
|
||
[0]=>
|
||
int(0)
|
||
[1]=>
|
||
int(1)
|
||
[2]=>
|
||
int(-2)
|
||
[3]=>
|
||
float(3.333333)
|
||
[4]=>
|
||
string(1) "a"
|
||
[5]=>
|
||
array(0) {
|
||
}
|
||
[6]=>
|
||
array(1) {
|
||
[0]=>
|
||
NULL
|
||
}
|
||
}
|
||
|
||
-- Iteration 16 --
|
||
after serialization => string(2) "N;"
|
||
after unserialization => NULL
|
||
|
||
-- Iteration 17 --
|
||
after serialization => string(2) "N;"
|
||
after unserialization => NULL
|
||
|
||
-- Iteration 18 --
|
||
after serialization => string(7) "s:0:"";"
|
||
after unserialization => string(0) ""
|
||
|
||
-- Iteration 19 --
|
||
after serialization => string(7) "s:0:"";"
|
||
after unserialization => string(0) ""
|
||
|
||
-- Iteration 20 --
|
||
after serialization => string(8) "s:1:" ";"
|
||
after unserialization => string(1) " "
|
||
|
||
-- Iteration 21 --
|
||
after serialization => string(8) "s:1:" ";"
|
||
after unserialization => string(1) " "
|
||
|
||
-- Iteration 22 --
|
||
after serialization => string(8) "s:1:"a";"
|
||
after unserialization => string(1) "a"
|
||
|
||
-- Iteration 23 --
|
||
after serialization => string(13) "s:6:"string";"
|
||
after unserialization => string(6) "string"
|
||
|
||
-- Iteration 24 --
|
||
after serialization => string(13) "s:6:"string";"
|
||
after unserialization => string(6) "string"
|
||
|
||
-- Iteration 25 --
|
||
after serialization => string(13) "s:6:"hello |