私は任意の配列として引数を受け入れることができるいくつかの関数に取り組んでいます。この配列の一部の値は変数として定義されます。この関数は別のファイルで定義されたクラスメソッドです。メソッドで定義された変数によって配列内のその変数を置き換える方法はありますか?別のファイルで渡された変数として定義された配列値を置き換えるにはどうすればよいですか?
主な目標は、構造が異なる$args
配列を渡す機能を持たせることですが、1つの配列キーの値として常に変数$filter_value
が存在します。
何らかの方法で、そのvaiableをパラメータ値$_GET
として渡される動的値に置き換えることを伝えたいと思います。
これで、すべてのargsを受け入れ、配列を作成し、グローバルプロパティを配列要素としてプッシュします。そして、2つの配列をマージするトリングrun()
方法をruningて、それらの一方がメソッドに渡され、そこに置かれるべき値は
$filter_value
可変test.phpを
$authors_arr = array(
'5' => 'author_name',
'7' => 'author_name2',
);
$args = array('author'=>$filter_value);
$dynamic_admin = new DynamicAdmin();
$dynamic_admin->addFilter('post', 'author', __('All authors','fn'), $authors_arr, $args);
$dynamic_admin->run();
Class.phpとの
class DynamicAdmin{
private $filter_fn = array();
public function addFilter($post_type, $meta_key, $label, $value_list, $args){
$args_arr = compact('post_type', 'meta_key', 'label', 'value_list','args');
$this->filter_fn[] = $args_arr;
}
public function run(){
foreach ($this->filter_fn as $filter){
$filter_value = $_GET[$filter['meta_key']];
$query->query_vars = array_merge($query->query_vars, $filter['args']);
}
}
};
をinsted
たとえば、現在のケースでは$filter['meta_key'] = 'author'
、私のURLには?auhor=5
があり、run()
メソッドの後には、$query->query_vars
のようになります:
Array(
...,
'author' => 5,
...,
)
申し訳ありませんが、になりますが、あなたが実際にやってみてください何か不明です。あなたの言葉遣いは、やや難しいです。あなたの例にいくつかの入力と期待される出力値のデモンストレーションを加えてください。 – arkascha
もっと情報を追加して、今、より明確になることを祈っています:) –
私はそこには懐疑的な考えがあると思います...あなたの配列が定義されると、それ以上の変数のトレースはありません。値だけが含まれています。 – arkascha