diff --git a/language/predefined/arrayaccess.xml b/language/predefined/arrayaccess.xml
index 6027c41b01..a54cf6ff67 100644
--- a/language/predefined/arrayaccess.xml
+++ b/language/predefined/arrayaccess.xml
@@ -55,7 +55,11 @@ class obj implements arrayaccess {
);
}
public function offsetSet($offset, $value) {
- $this->container[$offset] = $value;
+ if (is_null($offset)) {
+ $this->container[] = $value;
+ } else {
+ $this->container[$offset] = $value;
+ }
}
public function offsetExists($offset) {
return isset($this->container[$offset]);
@@ -76,7 +80,10 @@ unset($obj["two"]);
var_dump(isset($obj["two"]));
$obj["two"] = "A value";
var_dump($obj["two"]);
-
+$obj[] = 'Append 1';
+$obj[] = 'Append 2';
+$obj[] = 'Append 3';
+print_r($obj);
?>
]]>
@@ -87,6 +94,19 @@ bool(true)
int(2)
bool(false)
string(7) "A value"
+obj Object
+(
+ [container:obj:private] => Array
+ (
+ [one] => 1
+ [three] => 3
+ [two] => A value
+ [0] => Append 1
+ [1] => Append 2
+ [2] => Append 3
+ )
+
+)
]]>
diff --git a/language/predefined/arrayaccess/offsetset.xml b/language/predefined/arrayaccess/offsetset.xml
index 3b9956a45f..af60bd43f0 100644
--- a/language/predefined/arrayaccess/offsetset.xml
+++ b/language/predefined/arrayaccess/offsetset.xml
@@ -61,10 +61,22 @@
]]>
+ &example.output;
+
+ first value
+ [1] => second value
+)
+]]>
+