通过引用方式在外部操作函数或成员方法内部的静态变量
下面举个简单的例子,说明三个关于引用方面的问题:
1. 参数引用后函数内进行类型转换同样是地址操作
2. 参数引用后再传递给其他函数时需要再次添加引用符才能保持地址操作
3. 函数返回值引用必须在函数申明时以及调用时都添加引用操作符
该例子使用的是对象方法的操作,同样适用于函数
<?php class A { public function & test1(& $a) { static $i = 0; var_dump($i); $a = (array) $a; $a['domain'] = 'http://blog.csdn.net/zhouzme'; $this->test2($a); $i++; var_dump($a); var_dump($i); return $i; } protected function test2(& $a) { $a['name'] = '蜗牛'; } } $obj = new A(); $a = ''; $c = & $obj->test1($a); $c++; var_dump($a); $obj->test1($a); var_dump($a);
输出的结果