我在一个大类中工作,它是应用程序的骨干之一,我们称之为myClass
. 我需要为这个类创建一个新的公共方法,并让它接受一个变量数组,该数组调用我正在编写的函数的各个方法:my_new_iterative_function()
......从某种意义上说,我需要一个“类中的类” " (javascript 很适合这个 ;) ... 我怎样才能实现以下目标,我迭代$fallback_order
参数数组以更改调用这些方法的顺序,然后有一个默认顺序,如果$fallback_order
为 false则执行默认参数?
class myClass {
public function existing_app_method_1() {
// other code
}
public function existing_app_method_2() {
// other code
}
// large app-centric class with many more methods
public function my_new_iterative_function( array $fallback_order = false ) {
method_foo() {
// do stuff
}
method_bar() {
// do stuff
}
method_more_methods() {
// there are at least 5 of them in total
}
if ( $fallbackorder == false ):
method_foo();
method_bar();
else:
foreach ( $fallback_order as $index => $this_fallback ) {
$name = $this_fallback;
if ( $this_fallback == $name ):
$this->$name();
endif;
}
endif;
}
}
视图模板中的目标如下:
<div><?php $myClass->my_new_iterative_function( array( 'method_more_methods', 'method_bar', 'method_foo', ) ); ?></div>
编辑:修复了一些明显错误的逻辑