1--TEST-- 2SPL: ArrayIterator implements ArrayAccess 3--FILE-- 4<?php 5 6$obj = new ArrayObject(array('1st', 1, 2=>'3rd', '4th'=>4)); 7 8var_dump($obj->getArrayCopy()); 9 10echo "===EMPTY===\n"; 11var_dump(empty($obj[0])); 12var_dump(empty($obj[1])); 13var_dump(empty($obj[2])); 14var_dump(empty($obj['4th'])); 15var_dump(empty($obj['5th'])); 16var_dump(empty($obj[6])); 17 18echo "===isset===\n"; 19var_dump(isset($obj[0])); 20var_dump(isset($obj[1])); 21var_dump(isset($obj[2])); 22var_dump(isset($obj['4th'])); 23var_dump(isset($obj['5th'])); 24var_dump(isset($obj[6])); 25 26echo "===offsetGet===\n"; 27var_dump($obj[0]); 28var_dump($obj[1]); 29var_dump($obj[2]); 30var_dump($obj['4th']); 31var_dump($obj['5th']); 32var_dump($obj[6]); 33 34echo "===offsetSet===\n"; 35echo "WRITE 1\n"; 36$obj[1] = 'Changed 1'; 37var_dump($obj[1]); 38echo "WRITE 2\n"; 39$obj['4th'] = 'Changed 4th'; 40var_dump($obj['4th']); 41echo "WRITE 3\n"; 42$obj['5th'] = 'Added 5th'; 43var_dump($obj['5th']); 44echo "WRITE 4\n"; 45$obj[6] = 'Added 6'; 46var_dump($obj[6]); 47 48var_dump($obj[0]); 49var_dump($obj[2]); 50 51$x = $obj[6] = 'changed 6'; 52var_dump($obj[6]); 53var_dump($x); 54 55echo "===unset===\n"; 56var_dump($obj->getArrayCopy()); 57unset($obj[2]); 58unset($obj['4th']); 59unset($obj[7]); 60unset($obj['8th']); 61var_dump($obj->getArrayCopy()); 62 63?> 64--EXPECTF-- 65array(4) { 66 [0]=> 67 string(3) "1st" 68 [1]=> 69 int(1) 70 [2]=> 71 string(3) "3rd" 72 ["4th"]=> 73 int(4) 74} 75===EMPTY=== 76bool(false) 77bool(false) 78bool(false) 79bool(false) 80bool(true) 81bool(true) 82===isset=== 83bool(true) 84bool(true) 85bool(true) 86bool(true) 87bool(false) 88bool(false) 89===offsetGet=== 90string(3) "1st" 91int(1) 92string(3) "3rd" 93int(4) 94 95Warning: Undefined array key "5th" in %s on line %d 96NULL 97 98Warning: Undefined array key 6 in %s on line %d 99NULL 100===offsetSet=== 101WRITE 1 102string(9) "Changed 1" 103WRITE 2 104string(11) "Changed 4th" 105WRITE 3 106string(9) "Added 5th" 107WRITE 4 108string(7) "Added 6" 109string(3) "1st" 110string(3) "3rd" 111string(9) "changed 6" 112string(9) "changed 6" 113===unset=== 114array(6) { 115 [0]=> 116 string(3) "1st" 117 [1]=> 118 string(9) "Changed 1" 119 [2]=> 120 string(3) "3rd" 121 ["4th"]=> 122 string(11) "Changed 4th" 123 ["5th"]=> 124 string(9) "Added 5th" 125 [6]=> 126 string(9) "changed 6" 127} 128array(4) { 129 [0]=> 130 string(3) "1st" 131 [1]=> 132 string(9) "Changed 1" 133 ["5th"]=> 134 string(9) "Added 5th" 135 [6]=> 136 string(9) "changed 6" 137} 138