1

重複の可能性:
Codeigniter の get_instance(): なぜ変数に割り当てるのですか?

コントローラーがあり、多くの機能があります。それらを別の cmd オブジェクトに分割したいと思います。しかしコントローラーでは、$this魔法のようなことができます。たとえば、次のように呼び出すことができます。

$this->form_validation->run('myAction');

しかし、このコードをコントローラーではないオブジェクトに移動すると、次のように関数を呼び出しました。

    $CI =& get_instance();
    $CI->form_validation->run('myAction');

それらが実行できることを認識しており、結果はまさに私が望んでいたものです。しかし、私の質問は、これら 2 つの操作またはコードに違いはありますか? get_instance()中身の黒魔術とは?コントローラー$thisは同じものを参照しましたget_instance()か? ありがとう。

4

1 に答える 1

1

を使用する$ci = &get_instance()と、codeigniter ネイティブ ライブラリを直接使用しているので、そのコピーを作成していません。" $this" コマンドはコントローラー内でのみ使用できるため、CI オブジェクトを変数に割り当てることが、コントローラー外の Ci コア ライブラリ内に移動する唯一の方法です。$thisモデル内の " " コマンドは、モデル オブジェクト自体を参照することに注意してください。

于 2013-01-25T08:37:33.927 に答える