phpの初心者ですが、誰かがこのように書いているのを見ました、$CI =& get_instance();
カスタム クラス ライブラリ内の CodeIgniter の元のリソースにアクセスするには、get_instance() 関数を使用する必要があります。この関数は CodeIgniter スーパー オブジェクトを返します。
一般的に言えば、コントローラー関数では $this を介して何でも呼び出すことができます。関数:
$this->load->helper('url');
$this->load->library('session');
$this->config-> Base_url');
etc.
$this は、独自のコントローラー、モデル、ビューでのみ直接動作します。CodeIgniter のオリジナル クラスをカスタム クラスで使用したい場合は、次のようにすることができます:
まず、CodeIgniter オブジェクトを定義します。そしてそれを変数に割り当てます:
$CI =& get_instance();
オブジェクトを変数として定義したら、$this の代わりにその変数名を使用できます:
$CI =& get_instance( );
$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url') ;
etc.
注: get_instance() 関数が参照によって渡されていることがわかります:
$CI =& get_instance();
これは非常に重要です。参照によって変数を割り当てます。代わりに元の CodeIgniter オブジェクトを使用します。コピーを作成します
同時に、次の点にも注意してください: PHP 4 を使用する場合、クラスのコンストラクターで get_instance() を呼び出さないことをお勧めします。PHP4 では、参照がコンストラクター内にある場合に問題があります。 CI スーパー オブジェクト。オブジェクトはクラスが完全にインスタンス化された後にのみ存在するためです。