참조에 의한 전달
참조에 의해 함수로 변수를 전달할수 있다. 이런 기법은 함수의 인수를 변경할수 있도록 한다. 문법은 다음과 같다:
<?php
function foo (&$var)
{
$var++;
}
$a=5;
foo ($a);
// $a is 6 here
?>
다음과 같은 것들은 참조에 의해 전달될수 있다:
- 변수, i.e. foo($a)
- New 구문, i.e. foo(new foobar())
-
참조, 함수에서 돌려받기, i.e.:
<?php
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
?>
결과가 정의되어 있지 않기 때문에, 어떤 표현식들은 참조에 의해 전달되어서는 안된다. 예를 들어, 다음과 같은 참조에 의한 전달의 예제코드는 유효하지 않다.
<?php
function bar() // Note the missing &
{
$a = 5;
return $a;
}
foo(bar());
foo($a = 5) // Expression, not variable
foo(5) // Constant, not variable
?>