2018-04-04 18:35:32 2178次浏览 2条回答 0 悬赏 30 金钱

在\vendor\yiisoft\yii2\base\Model.php里的

public function offsetSet($offset, $item)
{
    $this->$offset = $item;
}

这个方法我看不懂在哪调用的,用debug也找不出来,求解这是如何实现的,该怎么看

最佳答案

  • johnny1991 发布于 2018-04-06 10:29 举报

    model 实现了ArrayAccess接口,这个方法是ArrayAccess接口提供的链接参考

    // 可以使你像使用数组一样给对象的属性赋值
    $model = new class extends Model {
        public $name;
        public $age;
    
        public function offsetSet($offset, $item)
        {
            var_dump('this is offset set');
            parent::offsetSet($offset, $item); // TODO: Change the autogenerated stub
        }
    };
    $model->name = 'johnny';
    $model['age'] = 25;
    var_dump($model);
    
    1 条回复
    回复于 2018-04-06 17:40 回复

    原来是这样啊,我还以为是yii的方法,多谢大大了

您需要登录后才可以回答。登录 | 立即注册
wsd15321
见习主管

wsd15321

注册时间:2017-11-08
最后登录:2019-06-13
在线时长:3小时12分
  • 粉丝0
  • 金钱255
  • 威望20
  • 积分485

热门问题