Mình tự học và có nhiều chỗ chưa hiểu. Rất mong mọi người giúp đỡ.
mình có đoạn code này (nó trong system/codeigniter/common.php của Codeigniter 1.6.1):
function &load_class($class, $instantiate = TRUE)
{
static $objects = array();
// Does the class exist? If so, we're done...
if (isset($objects[$class]))
{
return $objects[$class];
}
// If the requested class does not exist in the application/libraries
// folder we'll load the native class from the system/libraries folder.
if (file_exists(APPPATH.'libraries/'.config_item('subclass_prefix').$class.EXT))
{
require(BASEPATH.'libraries/'.$class.EXT);
require(APPPATH.'libraries/'.config_item('subclass_prefix').$class.EXT);
$is_subclass = TRUE;
}
else
{
if (file_exists(APPPATH.'libraries/'.$class.EXT))
{
require(APPPATH.'libraries/'.$class.EXT);
$is_subclass = FALSE;
}
else
{
require(BASEPATH.'libraries/'.$class.EXT);
$is_subclass = FALSE;
}
}
if ($instantiate == FALSE)
{
$objects[$class] = TRUE;
return $objects[$class];
}
if ($is_subclass == TRUE)
{
$name = config_item('subclass_prefix').$class;
$objects[$class] =& new $name();
return $objects[$class];
}
$name = ($class != 'Controller') ? 'CI_'.$class : $class;
$objects[$class] =& new $name();
return $objects[$class];
}
Cho mình hỏi:
Dấu & trước tên hàm để làm j vậy, còn ở đây nữa "$objects[$class] =& new $name()"
Còn khi báo $instantiate == FALSE tại sao nó lại ko khởi tạo new class, mà hình như là nó chưa require class thì nó trả về là trả j vậy
Nếu có ai hiểu kĩ thì nói cụ thể đoạn code này làm ntn luôn nhé. Cám ơn, đọc mãi không hiểu
