php-src/ext/spl/tests/bug70730.phpt
Xinchen Hui e2d6090043 Fixed bug #70730 (Incorrect ArrayObject serialization if unset is called in serialize())
It's possible to fixed this in SPL side, but it will be ugly, and we
should make serialize more robust, so I prefer fix it in serialize side.
2015-10-17 05:28:49 -07:00

45 lines
714 B
PHP

--TEST--
Bug #70730 (Incorrect ArrayObject serialization if unset is called in serialize())
--FILE--
<?php
class A extends \ArrayObject
{
protected $foo;
public function __construct()
{
$this->foo = 'bar';
}
public function serialize()
{
unset($this->foo);
$result = parent::serialize();
$this->foo = 'bar';
return $result;
}
}
$a = new A();
$a->append('item1');
$a->append('item2');
$a->append('item3');
$b = new A();
$b->unserialize($a->serialize());
var_dump($b);
?>
--EXPECTF--
object(A)#%d (2) {
["foo":protected]=>
string(3) "bar"
["storage":"ArrayObject":private]=>
array(3) {
[0]=>
string(5) "item1"
[1]=>
string(5) "item2"
[2]=>
string(5) "item3"
}
}