1

この同じクラスの他のメソッド内のクロージャー内からクラスのプライベート静的メソッドを呼び出そうとしていますが、それを行う正しい方法が見つかりません...プライベートメソッドを参照する使用を使用しても...プライベート変数を参照して渡すことはできますが、プライベート メソッドを参照する方法はありません... $refMethod = array('App','_onEvent'); call_user_func($refMethod) を使用すると、メソッドがプライベートであることがスローされます... PHP 5.4バージョン(WAMP 32ビット)でもReflectionClassを試しましたが、インスタンスにgetClosureメソッドが存在しないと言われています:(

class App(){
    static public function start(){
        new Form('myform', array('submit'=>function($form) use($someVar){
            if($anyCondition){
                // want to call private self::_onEvent here : any suggestion ?
            }
        }));
    }
    static private function _onEvent(){
        // this is my very private part
    }
}

クロージャーにはスコープがないことはよく知っていますが、そうです...このようなことを達成するためにプライベートコンテキストを渡す方法はありますか(クロージャーはクラス内にあるため)?ライトをありがとう!

編集:私はまさにこの答えをしたいのですが、これは素晴らしいことを投げるだけです

アクティブなクラス スコープがない場合、self:: にアクセスできません

4

1 に答える 1