CodeIgniter:加载自定义库时出错

时间:2015-11-06 08:54:07

标签: php codeigniter

我在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,但我无法收到错误

4 个答案:

答案 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;
}

此外,在加载您的库时,我认为您不需要大写任何字母