diff options
Diffstat (limited to 'ext/spl/tests/observer_005.phpt')
| -rwxr-xr-x | ext/spl/tests/observer_005.phpt | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/ext/spl/tests/observer_005.phpt b/ext/spl/tests/observer_005.phpt new file mode 100755 index 000000000..46971cc2d --- /dev/null +++ b/ext/spl/tests/observer_005.phpt @@ -0,0 +1,144 @@ +--TEST-- +SPL: SplObjectStorage serialization & visibility +--SKIPIF-- +<?php if (!extension_loaded("spl")) print "skip"; ?> +--FILE-- +<?php + +class TestClass +{ + public $def = 24; + public $pub = 25; + protected $pro = 26; + private $pri = 27; + + public function __construct($pub = 42, $pro = 43, $pri = 44) + { + $this->pub = $pub; + $this->pro = $pro; + $this->pri = $pri; + } +} + +class ExtTestClass +{ +} + +class MyStorage extends SplObjectStorage +{ + public $def = 24; + public $pub = 25; + protected $pro = 26; + private $pri = 27; + + public function __construct($pub = 52, $pro = 53, $pri = 54) + { + $this->pub = $pub; + $this->pro = $pro; + $this->pri = $pri; + } +} + +class ExtStorage extends MyStorage +{ +} + +$storage = new MyStorage(1,2,3); + +foreach(array(array(4,5,6),array(7,8,9)) as $value) +{ + $storage->attach(new TestClass($value[0], $value[1], $value[2])); +} + +var_dump(count($storage)); + +foreach($storage as $object) +{ + var_dump($object); +} + +var_dump($storage); + +var_dump(serialize($storage)); +echo "===UNSERIALIZE===\n"; + +$storage2 = unserialize(serialize($storage)); + +var_dump(count($storage2)); + +foreach($storage2 as $object) +{ + var_dump($object); +} + +var_dump($storage2); + +?> +===DONE=== +<?php exit(0); ?> +--EXPECTF-- +int(2) +object(TestClass)#%d (4) { + ["def"]=> + int(24) + ["pub"]=> + int(4) + ["pro:protected"]=> + int(5) + ["pri:private"]=> + int(6) +} +object(TestClass)#%d (4) { + ["def"]=> + int(24) + ["pub"]=> + int(7) + ["pro:protected"]=> + int(8) + ["pri:private"]=> + int(9) +} +object(MyStorage)#%d (4) { + ["def"]=> + int(24) + ["pub"]=> + int(1) + ["pro:protected"]=> + int(2) + ["pri:private"]=> + int(3) +} +string(%d) "%s" +===UNSERIALIZE=== +int(2) +object(TestClass)#%d (4) { + ["def"]=> + int(24) + ["pub"]=> + int(4) + ["pro:protected"]=> + int(5) + ["pri:private"]=> + int(6) +} +object(TestClass)#%d (4) { + ["def"]=> + int(24) + ["pub"]=> + int(7) + ["pro:protected"]=> + int(8) + ["pri:private"]=> + int(9) +} +object(MyStorage)#%d (4) { + ["def"]=> + int(24) + ["pub"]=> + int(1) + ["pro:protected"]=> + int(2) + ["pri:private"]=> + int(3) +} +===DONE=== |
