在用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(); } }
Comments are closed.