Implements ArrayAccess::offsetSet().
public function offsetSet($name, $value) {
if (is_array($value)) {
$value = new AttributeArray($name, $value);
}
elseif (is_bool($value)) {
$value = new AttributeBoolean($name, $value);
}
elseif (!is_object($value)) {
$value = new AttributeString($name, $value);
}
// The $name could be NULL.
if (isset($name)) {
$this->storage[$name] = $value;
}
else {
$this->storage[] = $value;
}
}