mirror of
https://github.com/php/php-src.git
synced 2024-12-05 07:46:06 +08:00
5b755c40ea
- bugfix #27063 - bugfix #27929 - bugfix #28099 - bugfix #28125 # The amount of code is needed to solve the return by reference problem. # dual_it and derived also need their own iterator handlers to be able # to return by reference.
62 lines
1001 B
PHP
Executable File
62 lines
1001 B
PHP
Executable File
--TEST--
|
|
SPL: ArrayObject from object
|
|
--SKIPIF--
|
|
<?php if (!extension_loaded("spl")) print "skip"; ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
// This test also needs to exclude the protected and private variables
|
|
// since they cannot be accessed from the external object which iterates
|
|
// them.
|
|
|
|
class test
|
|
{
|
|
public $pub = "public";
|
|
protected $pro = "protected";
|
|
private $pri = "private";
|
|
|
|
function __construct()
|
|
{
|
|
$this->imp = "implicit";
|
|
}
|
|
};
|
|
|
|
$test = new test;
|
|
$test->dyn = "dynamic";
|
|
|
|
print_r($test);
|
|
|
|
$object = new ArrayObject($test);
|
|
|
|
print_r($object);
|
|
|
|
foreach($test as $key => $val)
|
|
{
|
|
echo "$key => $val\n";
|
|
}
|
|
|
|
?>
|
|
===DONE===
|
|
<?php exit(0); ?>
|
|
--EXPECTF--
|
|
test Object
|
|
(
|
|
[pub] => public
|
|
[pro:protected] => protected
|
|
[pri:private] => private
|
|
[imp] => implicit
|
|
[dyn] => dynamic
|
|
)
|
|
ArrayObject Object
|
|
(
|
|
[pub] => public
|
|
[pro:protected] => protected
|
|
[pri:private] => private
|
|
[imp] => implicit
|
|
[dyn] => dynamic
|
|
)
|
|
pub => public
|
|
imp => implicit
|
|
dyn => dynamic
|
|
===DONE===
|