您的位置:首页 > 编程语言 > PHP开发

php中函数前加&符号的作用

2017-11-09 15:57 495 查看
这两天公司要搭一个论坛,看dz的源码,发现了下面的这种写法

calss discuz_application{
static function &instance() {
static $object;
if(empty($object)) {
$object = new self();
}
return $object;
}
}

public static function creatapp() {
if(!is_object(self::$_app)) {
self::$_app = discuz_application::instance();
}
return self::$_app;
}


研究了下 方法名前面加 & 的作用

function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}

$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这 条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3   相当于这样的效果($a=&b;)
$a=5;
$a=test(); //这条语句会输出 $b的值 为6


a=test()方式调用函数,只是将函数的值赋给a而已, 而a做任何改变 都不会影响到函数中的b.

而通过a=&test()方式调用函数呢, 他的作用是将returnb中的 b变量的内存地址与a变量的内存地址,

指向了同一个地方. 即产生了相当于这样的效果(a=&b;) 所以改变a的值,也同时改变了b的值,所以在执行了:a=&test(); a=5;以后,b的值变为了5。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php 函数