-1

下面是我们可以在 Magento 2 核心代码中找到的函数。

protected function createObject($type, $args)
{
    return new $type(...array_values($args));
}

此函数正在使用参数(这是一个数组参数)实例化$type(这是一个字符串参数)。$args

我没有得到的是那 3 个点 ( ...)。这是一个有效的语法吗?我以前从未发现过这样的对象实例化!

我试图删除这些点并尝试加载页面。它给出了致命的错误。这么看来,那三个点也不是不小心过来的。

似乎该代码不适用于 php-5.3 或更低版本。所以这是我在任何地方都找不到的新东西。

4

2 回答 2

2

它是一个变长参数列表。它们是 PHP 5.6.x 的新手。此示例来自 PHP 手册:

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4);
?>
于 2017-02-12T08:22:29.530 回答
1

这是使用数组作为函数参数或参数列表的好方法。实际上,它是功能的替代品func_get_args()可变长度参数列表

于 2017-02-12T08:22:43.287 回答