Я работаю над некоторой функцией, которая может принимать аргумент как любой массив. Некоторое значение в этом массиве определяется как переменная. Эта функция - метод класса, определенный в другом файле. Есть ли способ заменить эту переменную в массиве переменной, определенной в методе?Как заменить значение массива, определенное как переменная, переданное в другом файле?
Основная цель - иметь возможность передавать массив $args
с разной структурой, но всегда существует переменная $filter_value
как значение одного ключа массива.
Я хочу сказать, что метод каким-то образом заменяет значение vaiable динамическим значением, которое будет передано как $_GET
parametr.
Итак, теперь метод принимает все args, создает массив из него, нажимает глобальное свойство как элемент массива. И тогда подножка run()
метод Тринга, чтобы объединить два массива, один из них передается методу, и должны быть помещены значение InstEd из $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']);
}
}
};
Например, в данном случае $filter['meta_key'] = 'author'
, в моих URL там ?auhor=5
и после run()
метода я хочу получить $query->query_vars
выглядит следующим образом:
Array(
...,
'author' => 5,
...,
)
Извините, но это не ясно, что вы на самом деле пытаются сделать. Твоя формулировка несколько сложна. Не могли бы вы добавить некоторую демонстрацию входных и ожидаемых выходных значений в ваш пример? – arkascha
добавьте больше информации, надеюсь, теперь его более ясно :) –
Я думаю, что здесь существует концепция промахов ... Как только ваш массив определен, в нем больше нет следа переменной. Он содержит только значения. – arkascha