オブジェクトがArrayAccessを実装しているため、 ArrayAccessと関係があると思います。しかし、魔法もどこにもありません。$this
$this->products[$key]
__get
__set
var_dump($this->products[$key]['selected_options'][$option_key]);
// Output: string(7) "Größe:S"
$this->products[$key]['selected_options'][$option_key] = "test";
var_dump($this->products[$key]['selected_options'][$option_key]);
// Output: string(7) "Größe:S"
誰かがここで何が悪いのか考えていますか?
また、これは機能することに注意してください。
$this->products[$key]['selected_options'] = array($option_key => "test");
// Output: string(4) "test"
製品の ArrayAccess $this
(カート) と同じですが、$products
代わりに$data
:
class Product implements ArrayAccess
{
protected $data;
/* **** ArrayAccess **** */
public function offsetExists($offset) {
return isset($this->data[$offset]);
}
public function offsetGet($offset) {
return $this->data[$offset];
}
public function offsetSet($offset , $value) {
$this->data[$offset] = $value;
}
public function offsetUnset($offset) {
unset($this->data[$offset]);
}
}