2017-02-12 7 views
-1

다음은 Magento 핵심 2 코드에서 찾을 수있는 함수입니다.What` ... PHP 객체 인스턴스화

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

이 함수 (배열 파라미터이다)의 인수와 $args (문자열 파라미터이다) $type 인스턴스화된다.

내가 얻지 못하는 것은 그 3 도트 (...)입니다. 이것은 유효한 구문입니까? 전에는 이런 객체 인스턴스를 발견하지 못했습니다 !!

그 점들을 제거하고 페이지를로드하려고했습니다. 치명적인 오류가 발생합니다. 그래서 그 세 점이 우연히 저기에 오지 않는 것 같습니다.

코드가 php-5.3 이하 버전에서는 작동하지 않는 것 같습니다. 그래서 나는 어디에도 찾을 수없는 새로운 것이 었습니다.

+0

Google에 'php three dots'라는 검색어를 사용할 수 있습니다. 놀랄 것입니다. –

답변

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