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)]);
}
}