То, что вы хотите, является логическим следствием: если вы хотите, чтобы поле b требовалось только тогда, когда a не пусто, у вас есть значение a => b.Это переводится как! A или b.Таким образом, в PHP это даст:
//if (a => b)
if (!(!empty(a)) || (!empty(b)))
Что может быть упрощено до
if (empty(a) || !empty(b))
Эта работа также, если вы должны убедиться, что поля множественных значений не пусты, например, если мы хотимc требуется, только если OR b не является пустым:
// (a or b) => c
if (!(!empty(a) || !empty(b)) || !empty(c))
//Equivalent to
if ((empty(a) && empty(b)) || !empty(c))
Вам нужно будет заключить его в скобки, если вы поставите другие условия из-за приоритета оператора.