2017-02-12 5 views
-1

で行うことは、我々はコアMagentoの2のコードで見つけることができる機能は何ですか。`...` PHPのオブジェクトのインスタンス化の下

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

この関数は、(配列パラメーターである)$args引数で(文字列パラメータである)$typeをインスタンス化されています。私は得ていないのです何

は、これらの3つのドット(...)です。これは有効な構文ですか?私は前にそのようなオブジェクトのインスタンス化を発見したことはありません!

私はそれらのドットを削除し、ページをロードしようと試みました。それは致命的なエラーを出します。だから、その3つのドットが誤ってそこに来ることはないようです。

そのコードは、PHP-5.3以下のバージョンでは動作しませんように思えます。だからどこにも見つけられない新しいものです。

+0

次の3つはあなたが驚かれることでしょうdots'クエリ 'PHPでGoogleを使用することができます。 –

答えて

2

それはvariable-length argument listsです。 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); 
?> 
1

これは、関数のパラメータまたは引数のリストとして配列を使うのに最適な方法です。 実際には、func_get_args()機能の代わりです。 Variable-length argument lists

関連する問題