5

CodeIgniter でクラスのインスタンスをいくつか作成したいと考えています。クラスをライブラリとして作成しましたが、複数のインスタンスを作成するために使用する構文がわかりません。

4

3 に答える 3

8

このスレッドはとうの昔に過ぎ去りましたが、答えを探しているときに出くわした質問の 1 つでした。だからここに私の解決策があります...

PHPです。クラスをライブラリとして作成し、標準の CI ローダー クラスを使用してロードしますが、通常の PHP スクリプトと同じように使用します。

クラスを構築します。

class My_class {

    var $number;

    public function __construct($given_number){
        $number = $given_number;
    }

    public function set_new_num($given_number){
        $number = $given_number;
    }
}

それをロードします。

// This will load the code so PHP can create an instance of the class
$this->load->library('My_class');

次に、必要に応じてオブジェクトをインスタンス化して使用します。

$num = new My_class(24);

echo $num->number;
// OUTPUT: 24

$num->set_new_num(12);

echo $num->number;
// OUTPUT: 12

私が使用する唯一の時間$this->my_classは、コーディングした静的関数を呼び出すことです。

于 2011-10-19T21:00:48.363 に答える
6

このトピックを復活させて申し訳ありませんが、追加するのに妥当なものがあると思います.

これを行うと、クラスの複数のインスタンスを追加できます。とにかくCodeigniterの標準的な使用法に違反しているかどうかはわかりませんが、ライブラリをロードして($this->library_name使用されていないものを作成します)、「new」キーワードで2つのMOREインスタンスを作成するよりもCodeigniterらしいようです。

$this->load->library( 'my_library', '', 'instance1' );
$this->load->library( 'my_library', '', 'instance2' );

$this->instance1->my_class_variable = 1; 
$this->instance2->my_class_variable = 2; 

echo $this->instance1->my_class_variable; // outputs 1
echo $this->instance2->my_class_variable; // outputs 2

コードでこれを使用して、さまざまなメニューを生成します。「メニュー」クラスと、メニューごとに異なるインスタンスがあり、それぞれに異なるメニュー項目があります。

于 2012-10-15T06:45:38.933 に答える