
ReflectionParameter::isPromoted 메서드는 PHP 7.1 이상에서 사용할 수 있습니다. 이 메서드는 인자로 전달된 변수가 함수의 매개변수에 의해 암시적으로提升되는지 여부를 반환합니다.
예를 들어, 아래와 같은 코드가 있을 때, ReflectionParameter::isPromoted($param)에서 $param이 boolean 타입일 때 true를 반환하는지 궁금합니다.
#hostingforum.kr
php
function test($param) {
// 코드...
}
$reflectionMethod = new ReflectionMethod('클래스명', 'test');
$reflectionParameter = $reflectionMethod->getParameters()[0];
var_dump($reflectionParameter->isPromoted(true)); // true
var_dump($reflectionParameter->isPromoted(false)); // false
위의 예제에서, $param이 boolean 타입일 때 true를 반환하는 이유는 PHP에서 boolean 타입은 integer 타입의 서브셋으로 간주되기 때문입니다. 따라서, boolean 타입의 변수가 함수의 매개변수에 의해 암시적으로提升되는 경우 true를 반환합니다.
반면, integer 타입의 변수나 string 타입의 변수는 암시적으로提升되지 않기 때문에 false를 반환합니다.
#hostingforum.kr
php
var_dump($reflectionParameter->isPromoted(1)); // false
var_dump($reflectionParameter->isPromoted('hello')); // false
2025-04-23 20:36