php-src/ext/spl/tests/array_022.phpt

117 lines
1.8 KiB
PHP
Executable File

--TEST--
SPL: ArrayObject/Iterator and reference to self
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--FILE--
==ArrayObject===
<?php
class MyArrayObject extends ArrayObject
{
public function __construct()
{
parent::__construct($this);
$this['bar'] = 'baz';
}
}
$a = new MyArrayObject;
$b = clone $a;
$b['baz'] = 'Foo';
var_dump($a);
var_dump($b);
?>
==ArrayIterator===
<?php
class MyArrayIterator extends ArrayIterator
{
public function __construct()
{
parent::__construct($this);
$this['bar'] = 'baz';
}
}
$a = new MyArrayIterator;
$b = clone $a;
$b['baz'] = 'Foo';
var_dump($a);
var_dump($b);
?>
===DONE===
--EXPECTF--
==ArrayObject===
object(MyArrayObject)#%d (1) {
["bar"]=>
string(3) "baz"
}
object(MyArrayObject)#%d (3) {
["bar"]=>
string(3) "baz"
["baz"]=>
string(3) "Foo"
["storage":"ArrayObject":private]=>
array(1) {
["bar"]=>
string(3) "baz"
}
}
==ArrayIterator===
object(MyArrayIterator)#%d (1) {
["bar"]=>
string(3) "baz"
}
object(MyArrayIterator)#%d (3) {
["bar"]=>
string(3) "baz"
["baz"]=>
string(3) "Foo"
["storage":"ArrayIterator":private]=>
object(MyArrayIterator)#%d (1) {
["bar"]=>
string(3) "baz"
}
}
===DONE===
--UEXPECTF--
==ArrayObject===
object(MyArrayObject)#%d (1) {
[u"bar"]=>
unicode(3) "baz"
}
object(MyArrayObject)#%d (3) {
[u"bar"]=>
unicode(3) "baz"
[u"baz"]=>
unicode(3) "Foo"
[u"storage":u"ArrayObject":private]=>
array(1) {
[u"bar"]=>
unicode(3) "baz"
}
}
==ArrayIterator===
object(MyArrayIterator)#%d (1) {
[u"bar"]=>
unicode(3) "baz"
}
object(MyArrayIterator)#%d (3) {
[u"bar"]=>
unicode(3) "baz"
[u"baz"]=>
unicode(3) "Foo"
[u"storage":u"ArrayIterator":private]=>
object(MyArrayIterator)#%d (1) {
[u"bar"]=>
unicode(3) "baz"
}
}
===DONE===