sample/inc/variables.php
<?php
/**
* Variables container
*
* @author USAMI Kenta <tadsan@zonu.me>
* @copyright 2017 Baguette HQ
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL-3.0
*/
final class variables implements \ArrayAccess
{
/** @var array */
private $data;
public function __construct(array $data)
{
$this->data = $data;
}
/**
* @param string $offset
* @param array $option
* @return mixed
*/
public function get($offset, array $option)
{
return isset($this[$offset]) ? $this[$offset] : $option['default'];
}
/**
* @param string $offset
* @return bool
*/
public function offsetExists($offset)
{
return array_key_exists($offset, $this->data);
}
/**
* @param string $offset
* @return mixed
*/
public function offsetGet($offset)
{
return $this->data[$offset];
}
/**
* @param string $offset
* @param mixed $value
* @return void
*/
public function offsetSet($offset, $value)
{
$this->data[$offset] = $value;
}
/**
* @param mixed $offset
*/
public function offsetUnset($offset)
{
unset($this->data[$offset]);
}
}