【问题标题】:Pass arguments from array in php to constructor [duplicate]将参数从php中的数组传递给构造函数[重复]
【发布时间】:2011-03-24 16:19:29
【问题描述】:

通常,如果我想将参数从 $myarray 传递给 $somefunction 我可以在 php 中使用

call_user_func_array($somefunction, $myarray);

但是,当希望调用的函数是对象的构造函数时,这不起作用。由于相当明显的原因,它不起作用:

$myobj = new call_user_func_array($classname, $myarray);

有什么相当优雅的东西可以工作

【问题讨论】:

    标签: php arrays function constructor arguments


    【解决方案1】:

    您可以使用反射 API:

    例子:

    $reflector = new ReflectionClass('Foo');
    $foo = $reflector->newInstanceArgs(array('foo', 'bar'));
    

    【讨论】:

    • 在 PHP 5.6 中,您还可以通过 ... 或 splat 运算符使用参数解包:php.net/manual/en/…
    • 拆包真的很不错...
    • 快速简单!我已经在我的新包加载器模块中使用了反射 API,这为我提供了一种方法来解释未来版本中的任意数量的参数。
    猜你喜欢
    • 2011-12-22
    • 2020-07-27
    • 2012-09-11
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多