$ class로 클래스의 이름과 생성자에 전달할 인수 $ args가 주어지면 실제로 $ class의 새 인스턴스를 만들 수 있습니까?임의의 인수로 임의 생성자 호출
else-if 체인 (지원할 최대 인수 수까지) 및 eval을 사용할 수 있지만 둘 다 깨끗하지 않습니다. 나는 이상적으로 단 한두 개의 라인을 찾고 있습니다.
$ class로 클래스의 이름과 생성자에 전달할 인수 $ args가 주어지면 실제로 $ class의 새 인스턴스를 만들 수 있습니까?임의의 인수로 임의 생성자 호출
else-if 체인 (지원할 최대 인수 수까지) 및 eval을 사용할 수 있지만 둘 다 깨끗하지 않습니다. 나는 이상적으로 단 한두 개의 라인을 찾고 있습니다.
을 할 ReflectionClass를 사용할 수 있습니다. 구체적으로 찾고있는 방법은 다음과 같습니다. newInstanceArgs
$class = 'YourClass';
$args = array ('a', 'b');
$reflection = new \ReflectionClass($class);
$classInstance = $reflection->newInstanceArgs($args);
당신은 당신은 Reflection를 사용하여 해당 작업을 수행 할 수 있습니다이
$myClass = "NameOfClass"; //Name of class as string
$reflection = new \ReflectionClass($myClass);
$params = array(1,2); //it can be a dynamic array of parameters
$myObject = $reflection->newInstanceArgs($params);
이것은 임의의 인수를 가진 생성자를 호출하지 않습니다. - none으로 호출합니다. – aaaaaa123456789
오. 클래스 생성자에 대한 동적 매개 변수를 포함하는 답변을 수정했습니다 –
이것은 이해가되지 않습니다 .. – Sherlock
잭 : 동의합니다. 다른 한편,이 질문은 그 하나 더 상세한 대답이 있습니다. – Havvy