Annotation of embedaddon/php/ext/spl/tests/bug38618.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #38618 (RecursiveArrayIterator::hasChildren() follows objects)
3: --FILE--
4: <?php # vim:ft=php
5:
6: class FruitPublic
7: {
8: public $title;
9:
10: public function __construct($title)
11: {
12: $this->title = $title;
13: }
14:
15: public function __toString()
16: {
17: return $this->title;
18: }
19: }
20:
21: class FruitProtected
22: {
23: protected $title;
24:
25: public function __construct($title)
26: {
27: $this->title = $title;
28: }
29:
30: public function __toString()
31: {
32: return $this->title;
33: }
34: }
35:
36: function test_array($array, $which, $flags = 0)
37: {
38: echo "===$which===\n";
39: $it = new RecursiveArrayIterator($array, $flags);
40: foreach (new RecursiveIteratorIterator($it) as $k => $fruit) {
41: echo $k , ' => ', $fruit, "\n";
42: }
43: }
44:
45: $array = array(
46: 1 => array(
47: 1 => array(
48: 1 => 'apple',
49: ),
50: 2 => array(
51: 1 => 'grape',
52: ),
53: ),
54: );
55:
56: test_array($array, 'Default with array');
57:
58: $array = array(
59: 1 => array(
60: 1 => array(
61: 1 => new FruitPublic('apple'),
62: ),
63: 2 => array(
64: 1 => new FruitPublic('grape'),
65: ),
66: ),
67: );
68:
69: test_array($array, 'Public Property');
70:
71: $array = array(
72: 1 => array(
73: 1 => array(
74: 1 => new FruitProtected('apple'),
75: ),
76: 2 => array(
77: 1 => new FruitProtected('grape'),
78: ),
79: ),
80: );
81:
82: test_array($array, 'Protected Property');
83:
84: test_array($array, 'Public Property New', RecursiveArrayIterator::CHILD_ARRAYS_ONLY);
85: test_array($array, 'Protected Property New', RecursiveArrayIterator::CHILD_ARRAYS_ONLY);
86: ?>
87: ===DONE===
88: <?php exit(0); ?>
89: ?>
90: ===DONE===
91: --EXPECTF--
92: ===Default with array===
93: 1 => apple
94: 1 => grape
95: ===Public Property===
96: title => apple
97: title => grape
98: ===Protected Property===
99: ===Public Property New===
100: 1 => apple
101: 1 => grape
102: ===Protected Property New===
103: 1 => apple
104: 1 => grape
105: ===DONE===
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>