
ReflectionMethod::invokeArgs는 메소드를 호출할 때, 인자에 null값이 포함되어 있으면 메소드에 null값이 전달됩니다.
이 경우 메소드 내부에서 null값을 처리하는 방법에 따라 결과가 달라집니다.
예를 들어, 메소드가 null값을 받는 매개변수가 있다면 null값이 전달됩니다.
#hostingforum.kr
php
class Test {
public function test($a, $b) {
echo $a . "n";
echo $b . "n";
}
}
$reflectionMethod = new ReflectionMethod('Test', 'test');
$reflectionMethod->invokeArgs(new Test(), array(null, 'hello'));
이 경우 'hello'만 출력됩니다.
반면에 메소드가 null값을 받지 않는 매개변수가 있다면 PHP는 에러를 발생시킵니다.
#hostingforum.kr
php
class Test {
public function test($a, $b) {
echo $a . "n";
echo $b . "n";
}
}
$reflectionMethod = new ReflectionMethod('Test', 'test');
$reflectionMethod->invokeArgs(new Test(), array('hello', null));
이 경우 PHP는 다음과 같은 에러를 발생시킵니다.
#hostingforum.kr
php
Fatal error: Uncaught ArgumentCountError: Too few arguments to function Test::test(), 2 passed in /path/to/script.php on line 7 and exactly 2 expected in /path/to/script.php on line 3
따라서 메소드 호출 시 null값이 포함되어 있는 경우 메소드 내부에서 null값을 처리하는 방법에 따라 결과가 달라집니다.
2025-05-18 03:39