mirror of
https://github.com/php/php-src.git
synced 2025-01-13 22:44:36 +08:00
Sync spl tests with 5.3
This commit is contained in:
parent
77a38f1a6a
commit
abd85a3ec1
105
ext/spl/tests/bug38618.phpt
Normal file
105
ext/spl/tests/bug38618.phpt
Normal file
@ -0,0 +1,105 @@
|
||||
--TEST--
|
||||
Bug #38618 (RecursiveArrayIterator::hasChildren() follows objects)
|
||||
--FILE--
|
||||
<?php # vim:ft=php
|
||||
|
||||
class FruitPublic
|
||||
{
|
||||
public $title;
|
||||
|
||||
public function __construct($title)
|
||||
{
|
||||
$this->title = $title;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->title;
|
||||
}
|
||||
}
|
||||
|
||||
class FruitProtected
|
||||
{
|
||||
protected $title;
|
||||
|
||||
public function __construct($title)
|
||||
{
|
||||
$this->title = $title;
|
||||
}
|
||||
|
||||
public function __toString()
|
||||
{
|
||||
return $this->title;
|
||||
}
|
||||
}
|
||||
|
||||
function test_array($array, $which, $flags = 0)
|
||||
{
|
||||
echo "===$which===\n";
|
||||
$it = new RecursiveArrayIterator($array, $flags);
|
||||
foreach (new RecursiveIteratorIterator($it) as $k => $fruit) {
|
||||
echo $k , ' => ', $fruit, "\n";
|
||||
}
|
||||
}
|
||||
|
||||
$array = array(
|
||||
1 => array(
|
||||
1 => array(
|
||||
1 => 'apple',
|
||||
),
|
||||
2 => array(
|
||||
1 => 'grape',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
test_array($array, 'Default with array');
|
||||
|
||||
$array = array(
|
||||
1 => array(
|
||||
1 => array(
|
||||
1 => new FruitPublic('apple'),
|
||||
),
|
||||
2 => array(
|
||||
1 => new FruitPublic('grape'),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
test_array($array, 'Public Property');
|
||||
|
||||
$array = array(
|
||||
1 => array(
|
||||
1 => array(
|
||||
1 => new FruitProtected('apple'),
|
||||
),
|
||||
2 => array(
|
||||
1 => new FruitProtected('grape'),
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
test_array($array, 'Protected Property');
|
||||
|
||||
test_array($array, 'Public Property New', RecursiveArrayIterator::CHILD_ARRAYS_ONLY);
|
||||
test_array($array, 'Protected Property New', RecursiveArrayIterator::CHILD_ARRAYS_ONLY);
|
||||
?>
|
||||
===DONE===
|
||||
<?php exit(0); ?>
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
===Default with array===
|
||||
1 => apple
|
||||
1 => grape
|
||||
===Public Property===
|
||||
title => apple
|
||||
title => grape
|
||||
===Protected Property===
|
||||
===Public Property New===
|
||||
1 => apple
|
||||
1 => grape
|
||||
===Protected Property New===
|
||||
1 => apple
|
||||
1 => grape
|
||||
===DONE===
|
Loading…
Reference in New Issue
Block a user