PHP에서 인자 배열을 사용하여 클래스를 어떻게 인스턴스화 할 수 있습니까?사용자 클래스 배열 호출 PHP
일반적으로이 함수는 call_user_func_array
이지만 클래스를 인스턴스화해야합니다.
PHP에서 인자 배열을 사용하여 클래스를 어떻게 인스턴스화 할 수 있습니까?사용자 클래스 배열 호출 PHP
일반적으로이 함수는 call_user_func_array
이지만 클래스를 인스턴스화해야합니다.
당신은 the reflection api와 특히 ReflectionClass::newInstanceArgs()에서 작업을 수행 할 수 있습니다
$class_name = 'fooBar';
$class_args = array('foo', 'bar');
$reflected_class = new ReflectionClass($class_name);
$class_instance = $reflected_class->newInstanceArgs($class_args);
PHP 매뉴얼에 따르면 call_user_func_array()에, 당신은 여전히 개체를 사용할 수 있습니다.
나는이 인자들을 어떻게 사용하고 있는지 모르겠다. 그래서 나는 간단한 예제 (일종의)만을 제시 할 것이다.
<?php
class foo
{
public function concat()
{
$args = func_get_args();
$output = '';
if(count($args) > 0)
{
foreach($args as $value)
{
$output .= $value;
}
}
echo $output;
}
}
$class = new foo();
// Should Echo "Hello"
call_user_func_array(array($class, "concat"), array("H", "e", "l", "l", "o"));
언급하지 않은 요구 사항이 누락되었습니다. 당신은 당신이 달성하고자하는 것의 예 (입/출력, 이것이 어떤 기능을하는지 등)를 제시해야합니다.
질문은 메서드를 호출하지 않고 개체를 인스턴스화하는 것에 대한 것입니다. –
로저 그. Lepidosteus와 함께 가라. – Jason
감사합니다. – PEPLOVE