tp5参数绑定到构造函数

之前一直不清楚tp5怎么把参数传入到构造函数中,今天看了文档,有个地方提到了

可以对架构函数进行参数绑定,当前请求的路由变量可以自动绑定到架构函数的参数,例如:

namespace app\index\Controller;

class Blog 
{
    protected $name;
    public function __construct($name = null)
    {
        $this->name = $name;
    }
}

如果访问
http://localhost/index/index/index/name/thinkphp
当前请求的路由变量name的值thinkphp会自动传入架构方法的name变量。
原文地址

下面是评论里面的内容,更加好理解了

[@Mr.Robot](https://www.kancloud.cn/@robert_wen) 明白了,刚才看的一头雾水

回复

[图片上传失败...(image-5b32c1-1530666110218)] 

Mr.Robot

@robert_wen ·10 个月前

//后面那个URL应该是 [http://localhost/index/blog/readname/name/thinkphp,](http://localhost/index/blog/readname/name/thinkphp,)
class Blog {
protected $name ;
public function construct ( $name = null ) {/和上面一样/}
public function readName () { return $this -> name ; }
}
意思就是构造函数** construct () 是在类 Blog 被实例化的时候才会被调用,所以URL中要访问index/blog/readname这个普通操作方法从而导致类 Blog 被实例化,实例化时会将后面的 name/thinkphp 当作参数绑定到构造函数中。因此输出的结果会是 thinkphp

这个功能是在实现多用户公众号的时候使用,例如:有个公众号提供A功能,那另外的公众号也提供A功能,怎么区分开呢?就是用这种自动注入的方式。

你可能感兴趣的:(tp5参数绑定到构造函数)