Пустая функция проверяет переменные, которые удовлетворяют установленным критериям, начиная с руководство
Возвращает FALSE, если переменная имеет непустое и ненулевое значение.
Следующие вещи считаются пустыми:
Ваши поля $ _POST фактически содержат что-то вроде этого
" ";
Это не пустая строка, а строка, заполненная пробельными символами.
Перед использованием empty () обрежьте () пробел из ваших значений POSTed
$trimmed_post = array();
foreach($_POST as $key=>$value){
$trimmed_post[$key] = $value;
}
if(!empty($trimmed_post['headline'])){
//...
}
Вам не нужно помещать новые значения в новый массив, но я не большой поклонник изменения того, что находится в автоматически генерируемых суперглобалах.
Последнее замечание, вы не можете сделать что-то подобное
if(!empty(trim($_POST['headline']))){
//...
}
потому что пустая функция ожидает передачи фактической переменной. Вы могли бы сделать что-то вроде этого вместо
if('' != trim($_POST['headline'])){
//...
}
Возможно, это лучший подход. Вы уменьшаете количество функций, которые вам нужно вызывать, пользователи могут публиковать записи со значением 0, и код более четко описывает, что он делает. Еще одна форма, которую вы увидите
if(trim($_POST['headline'])){
}
Это работает, потому что PHP оценивает пустую строку ('') как false, а непустую строку как true. Я склонен избегать этой формы, потому что я обнаружил множество ошибок PHP, возникающих из-за недопонимания того, как операторы равенства получают логические значения из определенных типов. Быть явным помогает уменьшить количество ошибок такого типа.