참조 표현
PHP Manual

참조 반환하기

참조에 의한 반환하기는 참조에 연결되어 있는 변수를 찾는 함수를 사용할 때 유용합니다. 참조에 의한 반환을 성능을 증가시키기 위해 사용하지 마십시오. 엔진이 스스로 최적화해 줍니다. 참조를 반환하는건 기술적으로 할 필요가 있을 경우에만 하십시오. 참조를 반환하려면, 다음 문법을 사용합니다:

<?php
class foo {
    public 
$value 42;

    public function &
getValue() {
        
retrun $this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue는 $obj->value의 참조로, 42입니다.
$obj->value 2;
echo 
$myValue;                // $obj->value의 새 값, 즉 2를 출력합니다.
?>

위 예제 코드는 함수 getvalue에 의해 반환하는 객체의 속성을 설정하지만, 참조 문법을 사용하지 않을 때와 같은 복사가 아니다.

Note: 인수 전달과 달리, 여기서는 두 군데에서 &을 사용해야 한다 - 보통의 복사가 아니라, 참조에 의해 반환하는 것을 가리킬 때, 그리고 일반적인 지정이 아닌 참조 연결이라는 것을 가리킬때, $myValue에 대해 사용해야 한다.

Note: 다음 문법으로 함수에서 참조를 반환하려 할 수 있습니다: return ($this->value); 이는 작동하지 않습니다. 변수가 아닌 표현식을 참조로 반환하려고 하는 일이기 때문입니다. 함수에서는 변수만을 참조로 반환할 수 있습니다 - 다른 것은 안됩니다. PHP4의 PHP 4.4.0부터, PHP5의 PHP 5.1.0부터 코드가 동적 표현식이나 new 연산자의 결과를 반환하려 하면, E_NOTICE 오류가 발생합니다.


참조 표현
PHP Manual