2011-01-07 2 views
0

Я новичок в создании кода.CodeIgniter Basic

Я хочу знать использование $ CI = & get_instance();

это использование для регистрации ошибок или глобальной конфигурации.

благодарит заранее.

ответ

9

От CodeIgniter руководства:

$ CI = & get_instance();

После того, как вы присвоили объект в переменной, вы будете использовать эту переменную вместо $ это:

$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() внутри ваших класс конструкторов. PHP 4 имеет проблема с ссылкой на объект CI super в конструкторах приложений , так как объекты не существуют до тех пор, пока класс не будет полностью создан.

Ссылка: http://codeigniter.com/user_guide/general/creating_libraries.html

+0

спасибо это мне очень помогает. Большое спасибо –

0

Только класс, который расширяет CI_Controller, модель, View можно использовать

$this->load->library('something'); 
$this->load->helper('something');//etc 

пользовательского класса не может использовать код выше. Чтобы использовать перечисленные выше функции в пользовательском классе, ваши должны использовать

$CI=&get instance(); 
$CI->load->library('something'); 
$CI->load->helper('something'); 

, например, в пользовательском классе

// this following code will not work 
Class Car 
{ 
    $this->load->library('something'); 
    $this->load->helper('something'); 
} 


//this will work 
Class Car 
{ 
    $CI=&get_instance(); 
    $CI->load->library('something'); 
    $CI->load->helper('something'); 
} 
// Here $CI is a variable.