From 75ce87e32c56ee6b8e83a9623698066a76ef73fa Mon Sep 17 00:00:00 2001 From: Richard Quadling Date: Mon, 12 Jul 2010 10:35:59 +0000 Subject: [PATCH] Show the use $obj[] within an ArrayAccess interface. Fix bug#52308 git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@301180 c90b9560-bf6c-de11-be94-00142212c4b1 --- language/predefined/arrayaccess.xml | 24 +++++++++++++++++-- language/predefined/arrayaccess/offsetset.xml | 14 ++++++++++- 2 files changed, 35 insertions(+), 3 deletions(-) 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 +) +]]> +