関数内でIFステートメントを設定して、外部関数が使用されているかどうかを判断しようとしています。私の質問が行くことができる1つの方法を推測します..IFステートメントを構築するために外部関数(app1、app2)にフックを設定するにはどうすればよいですか?クラスでそれらを包みますか?もしそうなら、どのように私はステートメントを構築できますか?
少なくとも私のレベルのPHP知識からは、ロジックは実際には意味をなさないようです。この目的のために、2つの関数(app1とapp2)があり、それぞれが2つの別々の管理パネルに対して異なるオプションのセットを作成します。各パネルのオプションのコンストラクターとマークアップは同じであり、「ラッパー」関数に含まれます。しかし現在、これを処理するには2つの別個の「ラッパー」関数を使用する必要があります。Panel1用とPanel2用の1つの関数。
したがって、基本的に同じことを行う2つの別個の関数を持つことは一種の冗長であるため、2つのラッパー関数を組み合わせるという任務を負っています。これがコードの要約ビットです。ご覧のとおり、それぞれの違いは「$ panel_type=...」ビットだけです。
function app1() {
$app1_options = array();
$app1_options[] = array(
'type' => 'text',
'name' => 'Text Field',
'id' => 'text_field_one'
);
return $app1_options;
}
function app2() {
$app2_options = array();
$app2_options[] = array(
'type' => 'text',
'name' => 'Text Field',
'id' => 'text_field'
);
return $app2_options;
}
function wrapper_panel1() {
$panel_type = app1();
foreach( $panel_type as $value ) {
switch ( $value[ 'type' ] ) {
case 'text':
// input stuff
break;
}
}
}
function wrapper_panel2() {
$panel_type = app2();
foreach( $panel_type as $value ) {
switch ( $value[ 'type' ] ) {
case 'text':
// input stuff
break;
}
}
}
したがって、これら2つの関数をマージするための何らかの方法を本当に探しています。
function wrapper() {
if ( app1() ) {
$panel_type = app1();
}
if ( app2() ) {
$panel_type = app2();
}
foreach( $panel_type as $value ) {
switch ( $value[ 'type' ] ) {
case 'text':
// input stuff
break;
}
}
}
これにクラス/オブジェクトを設定して何かできるでしょうか?または、これを達成できるあらゆる種類の変更。
これに関して提供できるどんな助けにも本当に感謝します。ありがとう!