WP_Option.php 934 Bytes
<?php
class WP_Option implements ArrayAccess, Countable {
    private $_ns;
    private $_data = Array();

    public function __construct($ns) {
        $this->_ns   = $ns;
        $this->_data = get_option($ns);
    }

    public function offsetExists($var) {
        return (isset($this->_data[$var]) ? true : false);
    }

    public function offsetGet($var) {
        return ($this->offsetExists($var) ? $this->_data[$var] : '');
    }

    public function offsetSet($var, $val) {
        $this->_data[$var] = $val;
        $this->save();
    }

    public function offsetUnset($var) {
        unset($this->_data[$var]);
        $this->save();
    }

    public function count() {
        return count($this->_data);
    }

    public function save() {
        update_option($this->_ns, $this->_data);
    }

    public function multiSet(Array $data) {
        array_merge($this->_data, $data);
        $this->save();
    }
}
?>