2013-03-06 2 views
2

다음 정적 변수가있는 클래스가 있습니다. 어떻게하면 익명의 PHP 함수 내에서 클래스의 정적 함수에 액세스 할 수 있습니까?PHP 익명 함수에서 변수에 액세스

class MyClass { 
    public static function MyFunction(mylocalparam){ 
     MyStaticClass:MyStaticMethod(function(myparam) use(mylocalparam){ 
     MyClass::MyFunction2(mylocalparam); 
    }); 
    } 

    private static function MyFunction2(someobject){ 
    } 
} 

익명 클래스 내에서 "MyFunction2"기능에 액세스하는 데 문제가 있습니다. 이 문제를 해결하는 방법에 대한 조언을 부탁드립니다.

답변

3

발생하지 않을 것입니다. 정적 함수 public을 만들어야합니다. 익명 함수는 MyClass 범위 내에서 실행되지 않으므로 private 메서드에 액세스 할 수 없습니다.

1

고정적으로 사용할 수 없지만 원할 경우 callback 유형의 매개 변수를 통해 호출 할 메서드를 전달할 수 있습니다.

당신은 PHP 매뉴얼에서 (모든 static 키워드를 삭제) 인스턴스 클래스 다음 당신은 당신이에있는 클래스의 메소드를 호출하는 익명 함수 내에서 $this을 사용할 수 있습니다.

을 수 전체 클래스를 변경하는 경우 :

클로저는 부모 범위에서 변수를 상속 할 수도 있습니다. 지정된

: 버전 5.4.0에서

이 익명 함수에서 사용할 수있는 $.

class MyClass { 
    public function MyFunction($mylocalparam){ 
     MyStaticClass:MyStaticMethod(function($myparam) use($mylocalparam){ 
     $this->MyFunction2($mylocalparam); 
    }); 
    } 

    private function MyFunction2($someobject){ 
    } 
} 
관련 문제