2

私が抱えている問題は、codeigniter内で作成した別のカスタムライブラリ内でカスタムライブラリを使用しようとしていることです。それらは両方ともlibraryフォルダーにあり、CodeIgniterは、最初に実行したCIのインスタンスをロードする必要があることを通知します...

class MyClass {

public function __construct()
{
    $CI =& get_instance();
    $CI->load->library("OtherClass");
}

このクラス内の関数内で、他のライブラリを使用しようとしています。

public function my_function()
{
      $CI->otherclass->function_inside_this_class();
}

私が得ているエラーは

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: CI
Filename: libraries/MyClass.php
Line Number: 20

codeigniterインスタンス自体を宣言することに関して私が欠けているものはありますか?

ありがとうございました!

4

2 に答える 2

10

現在、CI変数スコープはコンストラクター関数に制限されています。$this->variableクラススコープを持ち、そのクラス内のすべての関数からアクセスできるクラス変数を作成できます。

class MyClass {

private $_CI; // make a private class variable here. 

public function __construct()
{
    $this->_CI =& get_instance();
    $this->_CI->load->library("OtherClass");
}
public function my_function()
{
    $this->_CI->otherclass->function_inside_this_class();
}
于 2012-09-20T18:41:54.007 に答える
0

CIは使うべきではないと思います。をインクルードしsecond_library.php、に新しいクラスを作成しfirst_library.phpます。それとも不可能ですか?

于 2012-09-20T19:38:13.643 に答える