2016-07-30 2 views
3

가 이상한이 정확한 시나리오 turned'up하지 않은 내 연구 :..PHP 5.6 * 7.0 대 * 구문 오류 ':'(T_PAAMAYIM_NEKUDOTAYIM), 예기치 않은

$someVar = $this->StaticClassName::$staticClassProperty;

PHP 7 * 행복하게 액세스하는 . (이 경우 .11) 재산 만 5.6 * 오류와 전복 :

예상치 못한 '::'(T_PAAMAYIM_NEKUDOTAYIM)

그리고 그래, 내가 해봤 모든 $ {순열} :: 나는 생각할 수 있었다.

<?php 

class MyClass { 

    public $childClass; 

    public function __construct() { 

     $this->childClass = new ChildClass(); 

    } 

} 

class ChildClass { 

    public static $foo = 'bar'; 

    public function getFoo() { 

     return static::$foo; 

    } 

} 

$obj = new MyClass(); 

echo $obj->childClass->getFoo(); 

?> 
+0

당신은 해결책을 찾기 위해이 있었나요? 나는 이것도 다루고있다. 다음은 예제 코드입니다 :' = ChildClass에 새로운 ChildClass에(); \t \t \t} \t } 클래스 ChildClass에 { \t \t 공공 정적 $ var에 = '야호?'; \t } $ obj = new MyClass(); echo $ obj :: $ var; // works echo $ obj-> childClass :: $ var; // 구문 오류 ?>' – Dan

답변

0

음, 여기에 적어도 당신의 요구에 무난 수 있습니다 하나 개의 솔루션입니다 그것은 여러 표현으로, 당신은 할 수 있습니다 여기에 :

이 PHP 5, PHP 7 모두에서 작동
$className = $this->StaticClassName; 
$someVar = $className::$staticClassProperty; 

3

5. 일반적으로 솔루션을 중단하는 것입니다 PHP에서 작동하지 않습니다 같은 복합 표현이 많이있다 :

관련 문제