2014-11-23 11 views
0

내 의존성 주입에 Dice을 사용하려고합니다.PHP 주사위 IoC - 구문 분석 오류 : 구문 오류, 예기치 않은 '.'?

난 당신이 dice.php를 열면

나는이 오류가
include 'dice.php'; 

class A { 
    private $b; 

    public function __construct(B $b) { 
     $this->b = $b; 
    } 
} 

class B { 
    private $c,$d; 

    public function __construct(C $c, D $d) { 
     $this->c = $c; 
     $this->d = $d; 
    } 
} 

class C { 

} 

class D { 
    private $e; 

    public function __construct(E $e) { 
     $this->e = $e; 
    } 
} 

class E { 

} 


$dice = new \Dice\Dice; 
$a = $dice->create('A'); 
print_r($a); 

,

Parse error: syntax error, unexpected '.' in C:...\dice.php on line 38

는이 오류 메시지가 참조하는 라인 (주사위 문서에서) 아래의 코드를 실행하면,

else $object = $params ? new $class->name(...$params($args)) : new $class->name; 

나는 이상한 것처럼 보입니다. - ...$params 무엇입니까?

아이디어가 있으십니까?

답변

2

vararg/splat 연산자 (...)는 PHP 5.6에서 새로 추가 된 기능입니다. 이상하게도 인기있는 라이브러리는 이러한 모호한 구문에 의존하지만 성공적으로 실행되도록 코드를 업그레이드해야하는 것처럼 보입니다.

PHP 5.6 New features

PHP 5.6 and the Splat Operator

+0

저는 PHP 5.5입니다. 부끄러운 생각 ... – laukok

+1

@tealou 주사위 웹 사이트 (https://github.com/TomBZombie/Dice)를 보면 여전히 PHP 5.4-5.5 버전이 있음을 알 수 있습니다. 특별히 PHP 5.6 기능을 사용하는 최신 버전을 실행하고있는 것 같습니다. – silkfire

+0

silkfire, 지적 해 주셔서 고맙습니다. 나는 php5.6을 사용하고 싶다. 그러나 나는 대부분의 상용/공유 서버가 여전히 5.5에 있다는 것에 두려워합니다 .... – laukok

0

PHP 5.4-5.5 버전은 https://github.com/TomBZombie/Dice에 더 이상 사용할 수 없습니다. 대부분의 공유 호스팅은 여전히 ​​5.5를 사용합니다. 아무도 sdome 링크에서 액세스 가능하도록 설정할 수 있습니까? 규칙을 약간 위반하는 것으로 알고 있습니다. 고맙습니다!