
ReflectionParameter::isPassedByReference 메소드는 PHP 7.0 이후에 추가된 메소드입니다. 이 메소드는 함수의 매개변수가 참조 타입인지 값 타입인지 확인하는 데 사용됩니다.
이 메소드는 PHP 7.0 이후에 추가된 타입 힌트를 사용하여 참조 타입인지 확인합니다. 예를 들어, 함수에 `$x`라는 매개변수가 있고, 타입 힌트가 `&$x`로 지정되어 있다면, 이 메소드는 `true`를 반환합니다. 반면에 타입 힌트가 `$x`로 지정되어 있다면, 이 메소드는 `false`를 반환합니다.
타입 힌트가 없을 경우, 이 메소드는 매개변수의 실제 타입을 분석하여 참조 타입인지 확인합니다. 예를 들어, 함수에 `$x`라는 매개변수가 있고, `$x`가 객체를 참조하는 경우, 이 메소드는 `true`를 반환합니다.
예제를 통해 이해를 돕겠습니다.
#hostingforum.kr
php
function test1(&$x) {
// 타입 힌트가 &로 지정되어 있다.
}
function test2($x) {
// 타입 힌트가 &로 지정되어 있지 않다.
}
$reflection = new ReflectionFunction('test1');
echo $reflection->getParameters()[0]->isPassedByReference() ? 'true' : 'false'; // true
$reflection = new ReflectionFunction('test2');
echo $reflection->getParameters()[0]->isPassedByReference() ? 'true' : 'false'; // false
위 예제에서, `test1` 함수의 매개변수에 타입 힌트가 `&`로 지정되어 있으므로, `isPassedByReference` 메소드는 `true`를 반환합니다. 반면에 `test2` 함수의 매개변수에 타입 힌트가 `&`로 지정되어 있지 않으므로, `isPassedByReference` 메소드는 `false`를 반환합니다.
이러한 메소드는 PHP에서 변수가 참조 타입인지 값 타입인지 구분할 수 있는 데 도움이 됩니다.
2025-08-15 13:09