【求助】关于控制器构造函数的使用

#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