<?php
class Requests_Utility_CaseInsensitiveDictionary implements ArrayAccess, IteratorAggregate
{
protected $data = array();
public function __construct(array $data = array())
{
foreach ($data as $key => $value) {
$this->offsetSet($key, $value);
}
}
public function offsetExists($key)
{
$key = strtolower($key);
return isset($this->data[$key]);
}
public function offsetGet($key)
{
$key = strtolower($key);
if (!isset($this->data[$key])) {
return null;
}
return $this->data[$key];
}
public function offsetSet($key, $value)
{
if ($key === null) {
throw new Requests_Exception('Object is a dictionary, not a list', 'invalidset');
}
$key = strtolower($key);
$this->data[$key] = $value;
}
public function offsetUnset($key)
{
unset($this->data[strtolower($key)]);
}
public function getIterator()
{
return new ArrayIterator($this->data);
}
public function getAll()
{
return $this->data;
}
}