diff --git a/language/predefined/arrayaccess.xml b/language/predefined/arrayaccess.xml
new file mode 100644
index 0000000000..46907d7b8b
--- /dev/null
+++ b/language/predefined/arrayaccess.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+ The ArrayAccess interface
+ ArrayAccess
+
+
+
+
+
+ &reftitle.intro;
+
+ Interface to provide accessing objects as arrays.
+
+
+
+
+
+ &reftitle.classsynopsis;
+
+
+
+ ArrayAccess
+
+
+
+
+ ArrayAccess
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+ Basic usage
+
+container = array(
+ "one" => 1,
+ "two" => 2,
+ "three" => 3,
+ );
+ }
+ public function offsetSet($offset, $value) {
+ $this->container[$offset] = $value;
+ }
+ public function offsetExists($offset) {
+ return isset($this->container[$offset]);
+ }
+ public function offsetUnset($offset) {
+ unset($this->container[$offset]);
+ }
+ public function offsetGet($offset) {
+ return isset($this->container[$offset]) ? $this->container[$offset] : null;
+ }
+}
+
+$obj = new obj;
+
+var_dump(isset($obj["two"]));
+var_dump($obj["two"]);
+unset($obj["two"]);
+var_dump(isset($obj["two"]));
+$obj["two"] = "A value";
+var_dump($obj["two"]);
+
+?>
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+ &language.predefined.arrayaccess.offsetexists;
+ &language.predefined.arrayaccess.offsetget;
+ &language.predefined.arrayaccess.offsetset;
+ &language.predefined.arrayaccess.offsetunset;
+
+
+
+
diff --git a/language/predefined/arrayaccess/offsetexists.xml b/language/predefined/arrayaccess/offsetexists.xml
new file mode 100644
index 0000000000..9fbb8f8347
--- /dev/null
+++ b/language/predefined/arrayaccess/offsetexists.xml
@@ -0,0 +1,155 @@
+
+
+
+
+
+ ArrayAccess::offsetExists
+ Whether a offset exists
+
+
+
+ &reftitle.description;
+
+ abstract public booleanArrayAccess::offsetExists
+ stringoffset
+
+
+ Whether or not an offset exists.
+
+
+ This method is executed when using isset or
+ empty on objects implementing ArrayAccess.
+
+
+
+ When using empty ArrayAccess::offsetGet will
+ be called and checked if empty only if ArrayAccess::offsetExists
+ returns true.
+
+
+
+
+
+ &reftitle.parameters;
+
+
+ offset
+
+
+ An offset to check for.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.success;
+
+
+
+ The return value will be casted to boolean if non-boolean was returned.
+
+
+
+
+
+ &reftitle.examples;
+
+
+ ArrayAccess::offsetExists example
+
+
+]]>
+
+ &example.outputs.similar;
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/language/predefined/arrayaccess/offsetget.xml b/language/predefined/arrayaccess/offsetget.xml
new file mode 100644
index 0000000000..df32845aa8
--- /dev/null
+++ b/language/predefined/arrayaccess/offsetget.xml
@@ -0,0 +1,102 @@
+
+
+
+
+
+ ArrayAccess::offsetGet
+ Offset to retrieve
+
+
+
+ &reftitle.description;
+
+ abstract public mixedArrayAccess::offsetGet
+ stringoffset
+
+
+ Returns the value at specified offset.
+
+
+ This method is executed when checking if offset is empty.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ offset
+
+
+ The offset to retrieve.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ Can return all value types.
+
+
+
+
+
+
+ &reftitle.seealso;
+
+
+ ArrayAccess::offsetExists
+
+
+
+
+
+
+
diff --git a/language/predefined/arrayaccess/offsetset.xml b/language/predefined/arrayaccess/offsetset.xml
new file mode 100644
index 0000000000..ffc935e5fe
--- /dev/null
+++ b/language/predefined/arrayaccess/offsetset.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+ ArrayAccess::offsetSet
+ Offset to set
+
+
+
+ &reftitle.description;
+
+ abstract public voidArrayAccess::offsetSet
+ stringoffset
+ stringvalue
+
+
+ Assigns a value to the specified offset.
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ offset
+
+
+ The offset to assign the value to.
+
+
+
+
+ value
+
+
+ The value to set.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+
+
+
+
diff --git a/language/predefined/arrayaccess/offsetunset.xml b/language/predefined/arrayaccess/offsetunset.xml
new file mode 100644
index 0000000000..ac6a85500a
--- /dev/null
+++ b/language/predefined/arrayaccess/offsetunset.xml
@@ -0,0 +1,105 @@
+
+
+
+
+
+ ArrayAccess::offsetUnset
+ Offset to unset
+
+
+
+ &reftitle.description;
+
+ abstract public voidArrayAccess::offsetUnset
+ stringoffset
+
+
+ Unsets an offset.
+
+
+
+ This method will not be called when type-casting to
+ (unset)
+
+
+
+
+
+ &reftitle.parameters;
+
+
+
+ offset
+
+
+ The offset to unset.
+
+
+
+
+
+
+
+
+
+ &reftitle.returnvalues;
+
+ &return.void;
+
+
+
+
+
+
+
+