php arrayObj对未设计索引不敏感

php arrayObj对未设计索引不敏感,php,Php,如何使ArrayObj对未定义的索引不敏感,我有时需要在日志记录中使用未定义的索引示例 $this->log['some']['other']['info']++ 以下是我的尝试: class arrayInSensitive extends \arrayObject{ var $data = array(); public function offsetGet($name) { if(!array_key_exists($name,$this->

如何使
ArrayObj
对未定义的索引不敏感,我有时需要在日志记录中使用未定义的索引示例

$this->log['some']['other']['info']++
以下是我的尝试:

class arrayInSensitive extends \arrayObject{

    var $data = array();

    public function offsetGet($name) {
        if(!array_key_exists($name,$this->data)) $this->data[$name]=new arrayInSensitive();

        return $this->data[$name];
    }
    public function offsetSet($name, $value) {
        $this->data[$name] = $value;
    }
    public function offsetExists($name) {
        return (array_key_exists($name,$this->data));
    }
    public function offsetUnset($name) {
        unset($this->data[$name]);
    }

}

怎么做?

只要在引用索引值时强制使用特定的大小写即可

class arrayInSensitive extends \arrayObject{

    var $data = array();

    public function offsetGet($name) {
        if(!array_key_exists(strtolower($name),$this->data)) $this->data[strtolower($name)]=new arrayInSensitive();

        return $this->data[strtolower($name)];
    }
    public function offsetSet($name, $value) {
        $this->data[strtolower($name)] = $value;
    }
    public function offsetExists($name) {
        return (array_key_exists(strtolower($name),$this->data));
    }
    public function offsetUnset($name) {
        unset($this->data[strtolower($name)]);
    }

}