참조를 사용한 전달(Passing by Reference)

참조(reference)를 사용하여 변수를 함수로 넘겨 전달(pass)할수 있다. 그래서 함수 내에서 변수의 값을 수정할 수 있다. 다음이 그 예이다.

function foo (&$var) {
     $var++;
 }
 
 $a=5;
 foo ($a);
 // $a is 6 here

함수를 호출할때 참조를 이용하여 변수를 전달(pass)한다는 어떠한 표시도 없다는 것에 주의하자. 단지 함수를 정의 할때 변수를 참조에 의해 전달 받는다는 표시가 있다. 함수를 정의할때 이를 정의 함으로써 참조에 의한 변수 전달이 가능하다.

참조에 의해 변수를 넘겨 주는 방법은 다음의 세가지 방법이 있다:

위의 나열한 세가지 방법외에는 참조에 의한 전달(pass)을 할수 없다. 예를 들면 아래 예와 같은 방법으로 참조에 의한 전달은 그 의미가 그 의미가 정확하지 못하다.

function bar() //  & 가 빠져있음에 유의하자;
 {
         $a = 5;
         return $a;
 }
 foo(bar));
 
 foo($a = 5) // 표현식(Expression)은 변수가 아니다.
 foo(5) // 상수(Constant)는 변수가 아니가.

이 모든것은 PHP 4.0.4 이상의 버젼에 해당된다.