看别人的PHP代码有一点不明白

array_unique — 移除数组中重复的值,但是为什么要加个(array)

$id = array_unique((array)$ids);

原代码
    public function doSetStatus($model, $ids, $status = 1)
    {
        $id = array_unique((array)$ids);
        $rs = M($model)->where(array('id' => array('in', $id)))->save(array('status' => $status));
        if ($rs === false) {
            $this->error('设置失败。');
        }
        $this->success('设置成功', $_SERVER['HTTP_REFERER']);
    }
阅读 2.8k
3 个回答

这是一种容错的写法,如果ids不是数组类型的话,array_unique会报错,但是前面加了(array)之后,不管传进来的是什么类型的都给他转换成array,就不会出错了!

总之就是,写函数的时候不要相信参数的传递者!

无论传进来的是不是数组,都给我转成数组的意思

学名 强制类型转换

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题