次のPHPクラスには、他にも多くのアプリ中心の関数が含まれていますが、スコープmy_new_iterative_function()
に入ると(必要な)、コンテキストが原因で無効になります。との内部で有効になるようにを渡す正しい方法は何ですか。foreach
$this
$this
method_foo
method_bar
注:これはより複雑な問題の一部であり$fallback_order
、デフォルトの順序で関数を実行しますが、my_new_iterative_function()
実行の順序(配列の目的)を制御するために配列を受け入れる必要があります$order_functions
。
class Foo {
public function my_new_iterative_function(array $fallback_order = array('method_foo', 'method_bar')) {
$order_functions = array(
'method_foo' => function(){
// need to access $this
},
'method_bar' => function(){
// need to access $this
},
);
foreach ( $fallback_order as $index => $this_fallback ) {
$order_functions[$this_fallback]();
}
}
}
$instance_of_foo->my_new_iterative_function();
$instance_of_foo->my_new_iterative_function([ 'method_bar', 'method_foo', ]);