Common.php 里的 load_class 函数为什么要使用引用
为什么是:function &load_class() {}
函数调用:
$_error =& load_class('Exceptions', 'core');
我将 & 去掉后,CodeIgniter 也能正常运行。
请问为什么要使用引用?
因为需要使用引用传递呀。
你去掉也正常,那只是碰巧,呵呵 据说是兼容 php < 5.3 的 Hex 发表于 2013-2-21 09:53 static/image/common/back.gif
因为需要使用引用传递呀。
你去掉也正常,那只是碰巧,呵呵
我的版本是 5.4 我不知道是不是为了兼容低版本。我的理解是,假设函数 return new Foo(),那么返回的本身就是引用,再加一个取地址符不是多此一举吗?
class Foo {
public $name;
public function __construct() {
$this->name = microtime(true);
}
}
function get_instance($class) {
static $_classes;
if (isset($_classes[$class])) {
return $_classes[$class];
}
$_classes[$class] = new $class();
return $_classes[$class];
}
$f = get_instance('Foo');
var_dump($f);
$f2 = get_instance('Foo');
var_dump($f2);
$f->age = 35;
var_dump($f);
var_dump($f2);
我上面的代码也完全能达到预期的效果。当然加了 & 也是一样的结果。那还是这个问题,为什么要用引用? jeongee 发表于 2013-2-21 10:00 static/image/common/back.gif
据说是兼容 php < 5.3 的
待会试试低版本的的PHP,看去掉 & 是否也能正常运行。 呵呵,我之前说的不太准确,应该是 @jeongee 老大说的对,为了兼容低版本。
属于历史遗留问题。
页:
[1]