理解PHP中的ArrayAccess

PHP内置对象 ArrayAccess 是一个 提供像访问数组一样访问对象的能力的接口
该对象内置的以下四个必须实现的方法

/*检查获取的属性是否存在*/
public function offsetExists($offset);
/*获取一个属性值*/
public function offsetGet($offset);
/*设置一个属性值*/
public function offsetSet($offset, $value);
/*删除一个属性值*/
public function offsetUnset($offset);

演示demo

class Test implements \ArrayAccess
{
    private $data = ['title'=>'test_ArrayAccess'];

    /*检查获取的属性是否存在*/
    public function offsetExists($offset){
        return isset($this->data[$$offset]);
    }

    /*获取一个属性值*/
    public function offsetGet($offset){
        return $this->data[$offset];
    }

    /*设置一个属性值*/
    public function offsetSet($offset, $value){
        $this->data[$offset] = $value;
    }

    /*删除一个属性值*/
    public function offsetUnset($offset){
        unset($this->data[$offset]);
    }


    public static function index()
    {
        $obj = new Test();
        dump($obj['title']);
    }

}

输出结果
屏幕截图 2020-10-18 133455.png

添加新评论