如何在 PHP 中用一组参数实例化一个类?
通常它会call_user_func_array
带有函数,但我需要实例化一个类。
如何在 PHP 中用一组参数实例化一个类?
通常它会call_user_func_array
带有函数,但我需要实例化一个类。
您可以使用反射 api,特别是ReflectionClass::newInstanceArgs()来做到这一点:
$class_name = 'fooBar';
$class_args = array('foo', 'bar');
$reflected_class = new ReflectionClass($class_name);
$class_instance = $reflected_class->newInstanceArgs($class_args);
根据关于call_user_func_array()的 PHP 手册,您仍然可以将它与对象一起使用。
我不确定你是如何使用这些参数的,所以我只举一个简单的例子(有点)。
<?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" ) );
如果我遗漏了您未提及的任何要求,请告诉我。您应该举例说明您要实现的目标(输入/输出、调用的函数等)。