У меня есть условное выражение в php, когда я добавляю логический оператор OR, он не работает должным образом, в приведенном ниже примере он возвращает код, который я пытаюсь предотвратить.
Индивидуально каждое утверждение работает только тогда, когда они вместе, как я их ниже. Кажется неэффективным повторять код для каждого условия.
if (!is_sp_post_type('profile') || !is_category(array('previews','reviews')) || !is_single(array('previews','reviews'))) {
//do stuff
};
Я прочитал этот ответ Есть ли в PHP короткое замыкание ИЛИ, которое возвращает крайнее левое значение? но я все еще застрял
Просто используйте AND
(&&
) оператор.
OR
оператору просто нужно одно true для выполнения условия, тогда как AND
Оператору нужны все утверждения, чтобы быть правдой.
Я не уверен на сто процентов, чего вы пытаетесь достичь, но я бы посоветовал еще раз взглянуть на ваш NOT
(!
) оператор и как он используется в вашем коде
Я был глуп, должен был использовать &&
if (!is_sp_post_type('profile') && !in_category(array('previews','reviews')) && !is_single(array('previews','reviews'))) {
//do stuff
}
Благодаря Питер Гусен за указание на это — он удалил свой ответ, поэтому я не могу выбрать его.