PHP/CodeIgniter-类构造中未定义的变量


PHP / CodeIgniter- Undefined variable in class construct

我有以下php错误:

遇到PHP错误

严重性:通知

消息:未定义变量:t

遇到PHP错误

严重性:警告

消息:myclass::__construct()缺少参数1,在中调用1011线上的xxx并定义

我的控制器包含:

    $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)会打印正确的带有内容的对象。。

感谢

Allright,这是由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),而不是单个参数。

另一种方法是复制cat antelove答案。

这样,您只需要更改模型文件和加载模型的方式。

p.S这只是为了丰富这个SO线程