1: <?php
2:
3: namespace OpenCloud\Common;
4:
5: class ArrayAccess implements \ArrayAccess
6: {
7: protected $elements;
8:
9: public function __construct($data = array())
10: {
11: $this->elements = (array) $data;
12: }
13:
14: /**
15: * Sets a value to a particular offset.
16: *
17: * @param mixed $offset
18: * @param mixed $value
19: */
20: public function offsetSet($offset, $value)
21: {
22: if ($offset === null) {
23: $this->elements[] = $value;
24: } else {
25: $this->elements[$offset] = $value;
26: }
27: }
28:
29: /**
30: * Checks to see whether a particular offset key exists.
31: *
32: * @param mixed $offset
33: * @return bool
34: */
35: public function offsetExists($offset)
36: {
37: return array_key_exists($offset, $this->elements);
38: }
39:
40: /**
41: * Unset a particular key.
42: *
43: * @param mixed $offset
44: */
45: public function offsetUnset($offset)
46: {
47: unset($this->elements[$offset]);
48: }
49:
50: /**
51: * Get the value for a particular offset key.
52: *
53: * @param mixed $offset
54: * @return mixed|null
55: */
56: public function offsetGet($offset)
57: {
58: return $this->offsetExists($offset) ? $this->elements[$offset] : null;
59: }
60: }
61: