2017-12-20 5 views
0

아래 예제에서 testProperty에 액세스하고 싶지만 중첩 된 함수 안에 있습니다 (중첩해야 함). 물론 "오브젝트 컨텍스트에 없을 때 $ this 사용 ".중첩 함수 속성 접근성

나는 단순히 기존의 다른 공개 기능을 열 수 없습니다. 누구든지이 문제를 해결하는 방법을 알고 있습니까?

전역 변수를 사용하지 않고 전체 클래스에서 전역 변수를 원합니다.

class test 
{ 
    private testProperty; 

    public function testFunction() { 
     function abc() { 
      var_dump($this->testProperty) 
     } 
    } 
} 
+0

, 코드를 수정하십시오. 'abc' 함수는 정의 된 후에'testFunction' 안에서 * 호출 *되어야한다고 가정합니다. – Smuuf

+0

은 Twig로 달성하려는 것을 포함하여 완전한 예를 제공합니다. – Ali

답변

0

정확히 원하는대로 문제를 해결하지 못했지만 문서에서 수정했습니다. 내 함수를 외부에 배치하고 public으로 만들고 내 abc()를 $ this-> abc()로 바 꾸었습니다.

+0

이것이 올바른 대답/해결책이라고 생각되면 답변으로 표시 할 수 있습니다. – Smuuf

+0

이렇게하려면 6 시간 정도 더 기다려야합니다. – olvenmage

0

달성하고자하는 것이 맞다면 이런 식으로 뭔가를하고 싶지 : 클래스 메소드 내에서 사용하는 경우 이제 익명 함수입니다

class test 
{ 
    private $testProperty = "whatever"; 

    public function testFunction() { 

     $abc = function() { 
      var_dump($this->testProperty); 
     }; 

     $abc(); 

    } 

} 

$x = new test; 
$x->testFunction(); 

$abc 때문에 가능한 변수 $this 있습니다.

출력됩니다 위의 코드 : 의도를 명확하게 알 수 있도록

string(8) "whatever"