【求助】关于控制器构造函数的使用
发布于:2022-01-17 09:50:54
#1 phpha
我写了一个控制器,比如新闻分类。
class cate extends spController{
public function __construct(){
//这里是查询了一些公用信息,给本控制器其他方法使用
$this->catelist = spClass('m_cate')->findAll();
}
public function catelist(){
$this->display('cate_catelist.html'); //这里模板里面能得到$catelist的值吗?
}
}
反正我写了个构造函数就报错了,如下:
Fatal error: Call to a member function assign() on a non-object in
E:\My Programs\PHPnow\vhosts\127.0.0.8\Comm\MyFrame\Core\spController.php on line
81
2011-10-27 17:00:43
#2 phpha
还是说我必须定义一个新的类,然后在构造函数里面写一些公用的信息。然后这个类继承公用类。
不过感觉这2种没什么区别吧……
这个面向对象的东西,可能有些东西我没想起来吧……
2011-10-27 17:09:38
#3 jake
class cate extends spController{
public function __construct(){
parent::__construct(); // 要先启动父类的构造函数 $this->catelist = spClass('m_cate')->findAll();
}
}
2011-10-27 19:28:04
#4 phpha
回复 3 jake 呵呵,是的。谢谢。
2011-10-28 09:20:03
#5 gonten
jake 发表于 2011-10-27 19:28
class cate extends spController{
public function __construct(){
parent::__construct(); // 要先启 ...
原来如此,刚才也也遇到了这个问题,现在解决了。
可是为什么要有个 public 呢?
我的控制器都是
function index(){
}
而不是
public function index(){
}
这里的public要不要有什么关系呢
2012-10-21 14:18:20
#6 jake
gonten 发表于 2012-10-21 14:18
原来如此,刚才也也遇到了这个问题,现在解决了。
可是为什么要有个 public 呢?
默认是public,可以省略。详见php手册
2012-10-21 15:45:00