我在CodeIgniter中创建了一个自定义库,并将其放在application/libraries/VarMatrixSpecanimal.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class VarMatrixSpecanimal {
protected $variabiliMatrix;
public function __construct() {
$variabiliMatrix['cat']['no']=1;
$variabiliMatrix['dog']['a']=2;
$variabiliMatrix['bird']['b']=3;
}
public function get_matrix() {
return $this->variabiliMatrix;
}
}
?>
然后在一个控制器(application/controllers/certificate.php
)方法中我添加了这两行代码:
public function save1()
{
//..... some more code before
$this->load->library('VarMatrixSpecanimal');
$numerical_values = $this->varmatrixspecanimal->get_matrix();
//..... some more code after
但是当我调用save1方法时,我收到了这个错误:
遇到PHP错误 严重性:通知
消息:未定义属性:Certificate :: $ varmatrixspecanimal
文件名:controllers / certificate.php
行号:139
我不明白我哪里做错了,请帮帮我。 我还检查了CodeIgniter帮助http://www.codeigniter.com/user_guide/general/creating_libraries.html,但我无法收到错误
答案 0 :(得分:1)
在VarMatrixSpecanimal.php的构造函数中添加get_instance()函数
public function __construct()
{
$this->variabiliMatrix =& get_instance();
}
在控制器上加载此库之后
$this->load->library('varmatrixspecanimal');
答案 1 :(得分:0)
我遇到过这样的事情,因为我忘了这行代码:
parent::__construct
在我的__construct或构造函数中。
答案 2 :(得分:0)
在程序顶部添加包含正确路径的包含文件将解决此问题。
include "../../VarMatrixSpecanimal.php";
答案 3 :(得分:0)
尝试从此处更改构造函数:
public function __construct() {
$variabiliMatrix['cat']['no']=1;
$variabiliMatrix['dog']['a']=2;
$variabiliMatrix['bird']['b']=3;
}
到此:
public function __construct() {
$this->variabiliMatrix['cat']['no']=1;
$this->variabiliMatrix['dog']['a']=2;
$this->variabiliMatrix['bird']['b']=3;
}
此外,在加载您的库时,我认为您不需要大写任何字母