1--TEST--
2ZE2 ArrayAccess and [] assignment
3--FILE--
4<?php
5
6class OverloadedArray implements ArrayAccess {
7	public $realArray;
8
9	function __construct() {
10		$this->realArray = array();
11	}
12
13	function offsetExists($index) {
14		return array_key_exists($this->realArray, $index);
15	}
16
17	function offsetGet($index) {
18		return $this->realArray[$index];
19	}
20
21	function offsetSet($index, $value) {
22		if (is_null($index)) {
23			$this->realArray[] = $value;
24		} else {
25			$this->realArray[$index] = $value;
26		}
27	}
28
29	function offsetUnset($index) {
30		unset($this->realArray[$index]);
31	}
32
33	function dump() {
34		var_dump($this->realArray);
35	}
36}
37
38$a = new OverloadedArray;
39$a[] = 1;
40$a[1] = 2;
41$a[2] = 3;
42$a[] = 4;
43$a->dump();
44?>
45===DONE===
46--EXPECT--
47array(4) {
48  [0]=>
49  int(1)
50  [1]=>
51  int(2)
52  [2]=>
53  int(3)
54  [3]=>
55  int(4)
56}
57===DONE===
58