ThinkPHP中,控制器继承中的construct

作者: dreamfly 分类: php,thinkphp 发布时间: 2015-04-16 21:25

在用ThinkPHP开发过程中,经常会创建一个CommonController的控制器来作为基类,而不是Controller直接作为基类,因为我们我可以灵活的在CommonController中添加一些设置,来让所有的子类都有这个属性和这方法,比如

我们可以在CommonController中的构造函数中__construct定义页面的编码方式,这样其他的控制器类在使用的时候也会使用定义的编码。

但是有时候我们在子类的控制器中写一些方法比如$this->assign('version’,'12');会提示不存在的方法,明明this就是类本身,怎么会不存在assign这个方法了呢,原来,我们在构造函数的写法中,需要子类继承父类的构造函数才能正确使用。

class CommonController extends Controller
{
    public function __construct()
    {
       header("Content-type: text/html; charset=utf-8"); 
    }
}

class NewsController extends CommonController
{
    public function __construct()
    {
        //不写这句就会报错
        parent::construct();
        
    }
}

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!