【问题标题】:Call user class array PHP调用用户类数组 PHP
【发布时间】:2013-10-16 01:50:51
【问题描述】:

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

通常会是call_user_func_array,但我需要实例化一个类。

【问题讨论】:

    标签: php arrays class command-line-arguments


    【解决方案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" ) );
    

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

    【讨论】:

    • 问题是关于实例化一个对象,而不是调用它的方法。
    • 罗杰。和 Lepidosteus 一起去吧。
    【解决方案2】:

    您可以使用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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 2012-09-30
      相关资源
      最近更新 更多