라이브러리
[PHP] ReflectionParameter::isPassedByReference - 참조로 전달되었는지 확인합니다.
PHP ReflectionParameter 클래스는 PHP 5.3.0 버전부터 사용할 수 있습니다. 이 클래스는 메소드의 매개변수에 대한 정보를 제공합니다.
ReflectionParameter::isPassedByReference
`ReflectionParameter::isPassedByReference` 메소드는 매개변수가 참조로 전달되는지 여부를 확인합니다. 참조로 전달되는 매개변수는 메소드 내에서 전달된 변수의 실제 값을 변경할 수 있습니다.
예제
#hostingforum.kr
php
function test($param1, &$param2) {
echo "param1: " . $param1 . "
";
echo "param2: " . $param2 . "
";
}
$reflectionMethod = new ReflectionMethod('test');
$reflectionParameter1 = $reflectionMethod->getParameters()[0];
$reflectionParameter2 = $reflectionMethod->getParameters()[1];
echo $reflectionParameter1->isPassedByReference() ? "true" : "false"; // false
echo "
";
echo $reflectionParameter2->isPassedByReference() ? "true" : "false"; // true
위 예제에서 `test` 함수의 두 번째 매개변수 `$param2`는 참조로 전달되었기 때문에 `isPassedByReference` 메소드는 `true`를 반환합니다. 반면 첫 번째 매개변수 `$param1`은 값으로 전달되었기 때문에 `false`를 반환합니다.
참조로 전달되는 매개변수와 값으로 전달되는 매개변수의 차이
참조로 전달되는 매개변수는 메소드 내에서 전달된 변수의 실제 값을 변경할 수 있습니다. 반면 값으로 전달되는 매개변수는 메소드 내에서 전달된 변수의 실제 값을 변경할 수 없습니다.
#hostingforum.kr
php
function test($param1, &$param2) {
$param1 = 10;
$param2 = 20;
}
$param1 = 5;
$param2 = 15;
test($param1, $param2);
echo $param1; // 5
echo "
";
echo $param2; // 20
위 예제에서 `test` 함수의 두 번째 매개변수 `$param2`는 참조로 전달되었기 때문에 메소드 내에서 `$param2`의 실제 값을 변경할 수 있습니다. 반면 첫 번째 매개변수 `$param1`은 값으로 전달되었기 때문에 메소드 내에서 `$param1`의 실제 값을 변경할 수 없습니다.
결론
`ReflectionParameter::isPassedByReference` 메소드는 매개변수가 참조로 전달되는지 여부를 확인할 수 있습니다. 참조로 전달되는 매개변수는 메소드 내에서 전달된 변수의 실제 값을 변경할 수 있습니다. 반면 값으로 전달되는 매개변수는 메소드 내에서 전달된 변수의 실제 값을 변경할 수 없습니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.