引用返回 Returning References
PHP中函数返回引用类型的语法为:
1 <?php
2 class foo {
3 public $value = 42;
4
5 // 函数名前加'&'说明返回值是引用,return语句后的变量表达式不能加'&'
6 public function &getValue() {
7 return $this->value;
8 }
9 }
10
11 $obj = new foo;
12
13 // 此处的'&'是指出引用关系,即 $myValue 是绑定到 $obj->value 的引用
14 $myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42.
15 $obj->value = 2;
16 echo $myValue; // prints the new value of $obj->value, i.e. 2.
17
18 ?>
2 class foo {
3 public $value = 42;
4
5 // 函数名前加'&'说明返回值是引用,return语句后的变量表达式不能加'&'
6 public function &getValue() {
7 return $this->value;
8 }
9 }
10
11 $obj = new foo;
12
13 // 此处的'&'是指出引用关系,即 $myValue 是绑定到 $obj->value 的引用
14 $myValue = &$obj->getValue(); // $myValue is a reference to $obj->value, which is 42.
15 $obj->value = 2;
16 echo $myValue; // prints the new value of $obj->value, i.e. 2.
17
18 ?>
如果是将返回的引用传参给另一个接受引用类型的函数则不需要使用'&':
1 <?php
2 function increValue(&$value) {
3 return ++$value;
4 }
5
6 increValue($obj->getValue());
7
8 ?> 2 function increValue(&$value) {
3 return ++$value;
4 }
5
6 increValue($obj->getValue());
7
参考文档
1. PHP手册 - Returning References