1

如何在 PHP 中用一组参数实例化一个类?

通常它会call_user_func_array带有函数,但我需要实例化一个类。

4

2 回答 2

7

您可以使用反射 api,特别是ReflectionClass::newInstanceArgs()来做到这一点:

$class_name = 'fooBar';
$class_args = array('foo', 'bar');
$reflected_class = new ReflectionClass($class_name);
$class_instance = $reflected_class->newInstanceArgs($class_args);
于 2013-10-08T22:27:14.983 回答
-1

根据关于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" ) );

如果我遗漏了您未提及的任何要求,请告诉我。您应该举例说明您要实现的目标(输入/输出、调用的函数等)。

于 2013-10-08T22:47:47.843 回答