И как ещё можно написать "если все поля формы пусты" кроме (!name) && (!$email) && (!topic) && (!$message)?
Старайтесь избегать такой нечитабельной писанины, это во первых, во вторых !$var - в первую очередь проверка на булево значение а не на пустоту. Хоть в контексте задачи на это плевать, но об этом лучше знать, и всегда проверять именно на то значение, которое ожидается или же наоборот, - не ожидается.
if($var) - вернет true на то что внутри переменной или чтто есть (пробел например), или оно булевое ДА. и вернет false если переменная пустая, булевое НЕТ или же равно NULL.
Задача весьма "странная" если честно
$answer = false;
$fields = ['name', 'email', 'topic', 'message'];
foreach($fields as $field)
{
$$field=trim($$field);
if(false===(empty($$field))) // Если поле не пустое, значит надо пробовать отправлять (исправил !empty() на 'false===empty()" см. коммент от @FanatPHP )
{
$mail_send = true || false;# здесь код отвечающий за отправку мыла
if($mail_send)
$answer=true;
break; // выходим из цикла независимо от результата отправки
}
}
var answer = 0;
if (a === 0) {
$(".clear").css("border-color", "red");
} else {
$('.clear').val('');
}