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 +) +]]> +