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

来源:互联网 发布:唐小僧 知乎 编辑:程序博客网 时间:2024/05/19 20:00

这两天公司要搭一个论坛,看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中的 ba变量的内存地址,
指向了同一个地方. 即产生了相当于这样的效果(a=&b;) 所以改变a的值,也同时改变了b,:a=&test(); a=5;b的值变为了5。