我有以下php错误:
遇到PHP错误
严重性:注意
消息:未定义的变量:t
和
遇到PHP错误
严重性:警告
消息:myclass :: __ construct()缺少参数1,调用 xxx在1011号线上 和定义
我的控制器包含:
$this->load->model('mymodel');
$i = $this->mymodel->func(1);
print_r($i);
mymodel:
$test = new myclass("foo", "bar");
$myarray[] = $test;
return $myarray
myclass:
class myclass {
var $a;
var $b;
public function __construct($t, $l) // ERROR 2
{
$this->a = $t; // ERROR 1
$this->b = $l;
}
}
请注意,控制器中的print_r($ a)会打印带有内容的正确对象。
由于
答案 0 :(得分:0)
好吧,那是由Codeigniter引起的。
myclass 在单独的文件中声明,并使用以下方式由 mymodel 加载:
$CI =& get_instance();
$CI->load->library('myclass', $params);
加载库时,Codeigniter会将 myclass 的实例创建为单例,但它不会传输任何参数。要防止此错误,您必须在加载lib之前提供参数:
$params = array('type' => "a", 'loc' => "b");
$CI =& get_instance();
$CI->load->library('myclass', $params);
请注意,必须是一个数组($ params),而不是一个参数。
答案 1 :(得分:0)