Добавьте условно пару ключ / значение в массив в Woocommerce - PullRequest
0 голосов
/ 06 октября 2018

Я хотел бы просто добавить условно 's' => $search_term в массив, если есть критерий поиска.

$args = array(
    // if there is a $search_term then insert: 
   's' => $search_term 
);

Я знаю, что могу написать много аргументов, а затем использовать оператор if вне массива, ноэто путь не то, что я хочу сделать.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

То, что вы предлагаете, не может быть выполнено.Функция PHP array используется для объявления ключей и значений.Итак, когда вы пишете:

$args = array( 
   's' => $search_term 
);

Это создаст ключ 's'.Вы можете сделать следующее

$args = array( 
       's' => isset($search_term) ? $search_term : null
    );

и выполнить запрос с помощью isset ($ args ['s']), чтобы выполнить то, что вы описываете, но IMO плохо полагаться на такое поведение. isset возвращает false, значения массива равны нулю.

Лучший способ, как рекомендует LoicTheAztec, но у вас есть обходной путь здесь.

0 голосов
/ 06 октября 2018

Вам нужно сделать это вне массива, как если бы не ключ 's' будет объявлен в любом случае в массиве (с пустым значением, если нет условия поиска .

Попробуйте следующее, где мы условно вставим новую пару ключ / значение в определенный массив:

// Initialize (or define) the array variable
$args = array();

// IF + Condition
if( isset($search_term) && ! empty($search_term) ){
    // Inserting in $args array a new key / value pair
    $args['s'] = $search_term;
}

Или, как описано выше, с всегда определенным ключом 's' следующим образом:

$args = array(
    's' => isset($search_term) && ! empty($search_term) ? $search_term : '';
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...