您现在的位置是:首页 > PHP框架交流PHP框架交流

php对象当数组使用 接口ArrayAccess对象下标取值赋值 php进阶

上善若水2022-01-02 16:52:10【PHP框架交流】 1854人已围观

简介php对象当数组使用,一个对象如果没有实现ArrayAccess结果是无法采用下标的方式去调用赋值和获取值的,目前主流的php框架查询出的集合对象都可以使用数组下标的方式去进行赋值.一个简单的demo

php对象当数组使用,一个对象如果没有实现ArrayAccess结果是无法采用下标的方式去调用赋值和获取值的,目前主流的php框架查询出的集合对象都可以使用数组下标的方式去进行赋值.
一个简单的demo实现数据方式赋值 获取值.

class A implements ArrayAccess
{
    /**
     * @var array $data
     */
    public $data = [];

    public function offsetExists($offset)
    {
        echo __FUNCTION__ . PHP_EOL;
        return array_key_exists($offset,$this->data);
    }

    public function offsetGet($offset)
    {
        echo __FUNCTION__ . PHP_EOL;
        return $this->data[$offset];
    }

    public function offsetSet($offset, $value)
    {
        echo __FUNCTION__ . PHP_EOL;
        $this->data[$offset]=$value;
    }

    public function offsetUnset($offset)
    {
        echo __FUNCTION__ . PHP_EOL;
        unset($this->data[$offset]);
    }
}

$a = new  A();
$a['name'] = 'a';
echo $a['a'], PHP_EOL;
echo isset($a['a']), PHP_EOL;
unset($a['a']);

最终的输入结果如下:

offsetSet
offsetGet

offsetExists

offsetUnset

对应的调用方法,大家可以进行对比.依次会调用相当的函数.了解这个之后我们就能知道为啥.框架里面的对象可以把对象当数组使用的.

很赞哦! (1)

相关文章

文章评论

站点信息

  • 建站时间:2019-10-24
  • 网站程序:Thinkphp6 Layui
  • 文章统计247篇文章
  • 标签管理标签云
  • 统计数据cnzz统计
  • 微信公众号:扫描二维码,关注我们