请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,关于实例化方法并传参,有一个问题想请教一下。

老师,是这样的。

在api接口模块的City控制器中有一个getCitysByParentId方法,因为我需要通过获取到的上级城市id去数据库中查询它对应的二级城市,所以实例化了app/common/model/City.php中的getNormalCitysByParentId方法,并传参$id

 public function getCitysByParentId()
    {
        //获取前台提交的json数据
        $id = input('post.id');
        if(!$id){
            $this->error('ID错误');
        }
        //根据上级城市id获取下一级的城市id
        $citys = $this->obj->getNormalCitysByParentId($id);
        if(!$citys){
            return show(0,'error');
        }
        return show(1,'success',$citys);     
    }

但是getNormalCitysByParentId方法的默认参数为$parentId=0

public function getNormalCitysByParentId($parentId=0){
    $data  = [
            'status'     => 1,
            'parent_id' => $parentId,
        ];
        $order = [
            'id' => 'desc',
        ];
        return $this->where($data)
            ->order($order)
            ->select();
    }

因为代码运行是正确的,所以我知道整个代码看起来像是$id的值替换了0,传递给了$parentId,但这是为什么呢?

我实例化了一个方法并传递了一个参数,那对应的方法中不也应该有一个相同的变量来接收这个参数才对吗?为什么$id直接将值赋给了$parentId呢?

望老师教我,感谢!


正在回答

1回答

singwa 2017-05-25 12:40:56

您您好,这个是方法中参数的传递。

0 回复 有任何疑惑可以回复我~
  • 提问者 谁与共少年 #1
    谢谢老师,提问完我就想起来了,是基础知识里面形参与实参的应用,谢谢老师。
    回复 有任何疑惑可以回复我~ 2017-05-26 08:57:37
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信