PHP的ArrayAccess接口 像数组一样来访问你的PHP对象

来源:互联网 发布:数据分析经理招聘 编辑:程序博客网 时间:2024/06/10 03:18

原文地址这里写链接内容

如果想让对象使用起来像一个PHP数组,那么我们需要实现ArrayAccess接口ArrayAccess是一个interface,实现这个interface,必须要实现以下几个方法:/** * 标识一个元素是否定义 * @param offset */abstract public function offsetExists ($offset) {}/** * 返回一个元素的值 * @param offset */abstract public function offsetGet ($offset) {}/** * 为一个元素的赋值 * @param offset * @param value */abstract public function offsetSet ($offset, $value) {}/** * 删除一个元素 * @param offset */abstract public function offsetUnset ($offset) {}示例代码:class Test implements ArrayAccess {    private $elements;    public function offsetExists($offset){        return isset($this->elements[$offset]);    }    public function offsetSet($offset, $value){        $this->elements[$offset] = $value;    }    public function offsetGet($offset){        return $this->elements[$offset];    }    public function offsetUnset($offset){        unset($this->elements[$offset]);    }}$test = new Test();$test['test'] = 'test';//自动调用offsetSetif(isset($test['test']))//自动调用offsetExists{    echo $test['test'];//自动调用offsetGet    echo '<br />';    unset($test['test']);//自动调用offsetUnset    var_dump($test['test']);}运行输出:testNULL 
0 0