File: iterator_027.phpt

package info (click to toggle)
php5 5.6.33%2Bdfsg-0%2Bdeb8u1
  • links: PTS, VCS
  • area: main
  • in suites: jessie
  • size: 157,872 kB
  • sloc: ansic: 756,065; php: 22,030; sh: 12,311; cpp: 8,771; xml: 6,179; yacc: 1,564; exp: 1,514; makefile: 1,467; pascal: 1,147; awk: 538; perl: 315; sql: 22
file content (83 lines) | stat: -rw-r--r-- 1,277 bytes parent folder | download | duplicates (9)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
--TEST--
SPL: CachingIterator::FULL_CACHE
--FILE--
<?php

$ar = array(1, 2, array(31, 32, array(331)), 4);

$it = new RecursiveArrayIterator($ar);
$it = new RecursiveIteratorIterator($it);
$it = new CachingIterator($it, CachingIterator::FULL_CACHE);

foreach($it as $k=>$v)
{
	echo "$k=>$v\n";
}

echo "===CHECK===\n";

for ($i = 0; $i < 4; $i++)
{
	if (isset($it[$i]))
	{
		var_dump($i, $it[$i]);
	}
}

$it[2] = 'foo';
$it[3] = 'bar';
$it['baz'] = '25';

var_dump($it[2]);
var_dump($it[3]);
var_dump($it['baz']);

unset($it[0]);
unset($it[2]);
unset($it['baz']);

var_dump(isset($it[0])); // unset
var_dump(isset($it[1])); // still present
var_dump(isset($it[2])); // unset
var_dump(isset($it[3])); // still present
var_dump(isset($it['baz']));

echo "===REWIND===\n";

$it->rewind(); // cleans and reads first element
var_dump(isset($it[0])); // pre-fetched
var_dump(isset($it[1])); // deleted
var_dump(isset($it[2])); // unset
var_dump(isset($it[3])); // deleted

?>
===DONE===
<?php exit(0); ?>
--EXPECT--
0=>1
1=>2
0=>31
1=>32
0=>331
3=>4
===CHECK===
int(0)
int(331)
int(1)
int(32)
int(3)
int(4)
string(3) "foo"
string(3) "bar"
string(2) "25"
bool(false)
bool(true)
bool(false)
bool(true)
bool(false)
===REWIND===
bool(true)
bool(false)
bool(false)
bool(false)
===DONE===