php里函数名或者方法名前加 & 符号表示的意思
By admin
- One minute read - 86 words先阅读手册
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用操作符**&**
例子 17-13. 由函数返回一个引用
<?php
function &returns_reference()
{
return $someref;
}
$newref =& returns_reference();
?>
有关引用的更多信息, 请查看引用的解释。
在来看一段很多开源代码喜欢用的单例注册模式
<?php
class a{}
class b{}
function & aa($name)
{
static $class = array();
if(!$class[$name])
{
$class[$name] = new $name();
}
return $class[$name];
}
$a = & aa('a');
$b = & aa('b');
$a2 = & aa('a');
$b2 = & aa('b');
echo $a === $a2 ? '$a和$a2是同一个实例化对象<br/>' : '';
echo $b === $b2 ? '$b和$b2是同一个实例化对象' : '';
?>
程序输出:
$a和$a2是同一个实例化对象
$b和$b2是同一个实例化对象
函数的引用 对于函数的引用,主要区别在于内存性能~ function &load_message() 和 function load_message(),第一个在使用的时候也要用 &load_message声明为一个引用返回,而第二个只是将函数的结果赋值到一个变量中,该函数一般用于递归作用。