2013-05-17 2 views
-1

$ class로 클래스의 이름과 생성자에 전달할 인수 $ args가 주어지면 실제로 $ class의 새 인스턴스를 만들 수 있습니까?임의의 인수로 임의 생성자 호출

else-if 체인 (지원할 최대 인수 수까지) 및 eval을 사용할 수 있지만 둘 다 깨끗하지 않습니다. 나는 이상적으로 단 한두 개의 라인을 찾고 있습니다.

+0

잭 : 동의합니다. 다른 한편,이 질문은 그 하나 더 상세한 대답이 있습니다. – Havvy

답변

3

을 할 ReflectionClass를 사용할 수 있습니다. 구체적으로 찾고있는 방법은 다음과 같습니다. newInstanceArgs

$class = 'YourClass'; 
$args = array ('a', 'b'); 

$reflection = new \ReflectionClass($class); 
$classInstance = $reflection->newInstanceArgs($args); 
1

당신은 당신은 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); 
+0

이것은 임의의 인수를 가진 생성자를 호출하지 않습니다. - none으로 호출합니다. – aaaaaa123456789

+0

오. 클래스 생성자에 대한 동적 매개 변수를 포함하는 답변을 수정했습니다 –

+0

이것은 이해가되지 않습니다 .. – Sherlock

관련 문제