这是什么原因啊?
本帖最后由 sunsongxp 于 2009-5-29 17:01 编辑我自己写了个Helper:load_data_helper.php
,内容如下
$CI =&get_instance();
function hp_load_view_data()
{
global $CI;
$data = array('agreements');
$data['website_name'] = $CI->lang->line('website_name');
$data['copyright'] = $CI->lang->line('copyright');
return $data;
}
这个代码本身没有问题,但是不能够在类的构造函数中引用,比如
class main extends Controller {
var $viewdata;
function main()
{
parent::Controller();
$this->viewdata = hp_load_view_data();
}
function index()
{
}
}
这样就会报错
Fatal error: Call to a member function line() on a non-object inC:\PHP\DedeAMPZ\WebRoot\Default\CodeIgniter_1.7.0\system\application\helpers\load_data_helper.php
on line
10
但是如果把“$this->viewdata = hp_load_view_data();
”放到index()中,就正常了……
不知道什么原因,有谁能解释下 不能在构造函数中外部引用即将构造的object,此时object不存在 哦,原来如此,这是PHP的面向对象的特点吗 什么语言的对象都要在存在以后才能引用,这个和 PHP 关系不大。 new 出来后,才有东西嘛
页:
[1]