2005-03-07 22:24:18 +00:00
|
|
|
--TEST--
|
2005-04-25 21:45:14 +00:00
|
|
|
ZE2 Serializable
|
2005-03-07 22:24:18 +00:00
|
|
|
--FILE--
|
|
|
|
<?php
|
|
|
|
|
2005-04-25 21:45:14 +00:00
|
|
|
class Test implements Serializable
|
2005-03-07 22:24:18 +00:00
|
|
|
{
|
|
|
|
public $data;
|
|
|
|
|
|
|
|
function __construct($data)
|
|
|
|
{
|
|
|
|
echo __METHOD__ . "($data)\n";
|
|
|
|
$this->data = $data;
|
|
|
|
}
|
|
|
|
|
|
|
|
function serialize()
|
|
|
|
{
|
|
|
|
echo __METHOD__ . "({$this->data})\n";
|
|
|
|
return $this->data;
|
|
|
|
}
|
|
|
|
|
|
|
|
function unserialize($serialized)
|
|
|
|
{
|
|
|
|
echo __METHOD__ . "($serialized)\n";
|
|
|
|
$this->data = $serialized;
|
|
|
|
var_dump($this);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$tests = array('String', NULL, 42, false);
|
|
|
|
|
|
|
|
foreach($tests as $data)
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
echo "==========\n";
|
|
|
|
var_dump($data);
|
|
|
|
$ser = serialize(new Test($data));
|
|
|
|
var_dump(unserialize($ser));
|
|
|
|
}
|
|
|
|
catch(Exception $e)
|
|
|
|
{
|
|
|
|
echo 'Exception: ' . $e->getMessage() . "\n";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|
|
|
|
===DONE===
|
|
|
|
<?php exit(0); ?>
|
|
|
|
--EXPECT--
|
|
|
|
==========
|
|
|
|
string(6) "String"
|
|
|
|
Test::__construct(String)
|
|
|
|
Test::serialize(String)
|
|
|
|
Test::unserialize(String)
|
|
|
|
object(Test)#1 (1) {
|
|
|
|
["data"]=>
|
|
|
|
string(6) "String"
|
|
|
|
}
|
|
|
|
object(Test)#1 (1) {
|
|
|
|
["data"]=>
|
|
|
|
string(6) "String"
|
|
|
|
}
|
|
|
|
==========
|
|
|
|
NULL
|
|
|
|
Test::__construct()
|
|
|
|
Test::serialize()
|
2005-04-25 21:45:14 +00:00
|
|
|
NULL
|
2005-03-07 22:24:18 +00:00
|
|
|
==========
|
|
|
|
int(42)
|
|
|
|
Test::__construct(42)
|
|
|
|
Test::serialize(42)
|
|
|
|
Exception: Test::serialize() must return a string or NULL
|
|
|
|
==========
|
|
|
|
bool(false)
|
|
|
|
Test::__construct()
|
|
|
|
Test::serialize()
|
|
|
|
Exception: Test::serialize() must return a string or NULL
|
|
|
|
===DONE===
|