Каков правильный способ проверить, является ли переменная $ _POST ['var'] пуста?
Например, скажем, у меня есть страница с формой, которая требует проверки на стороне клиента и на стороне сервера, и если какая-либо проверка не выполняется, ошибки отображаются на ярлыках формы. Эти же ярлыки будут использоваться для отображения сообщений об ошибках либо с отказом на стороне клиента, либо с ошибкой на стороне сервера.
Это означает, что в ярлыке мне нужно будет сделать что-то вроде этого:
<?php
if (isset($_POST['var'])) {
echo $_POST['var'];
}
else {
echo 'Please ensure you have entered your details';
}
?>
Однако я слышал, что неправильно проверять, установлена ли переменная $ _Post, если существует вероятность, что она пуста?
Эта ссылка может быть полезна: https://www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/
Используйте empty
функцию, чтобы проверить, есть ли что-то переменное:
<?php
if (isset($_POST['var']) && !empty($_POST['var'])) {
echo $_POST['var'];
}
else {
echo 'Please ensure you have entered your details';
}
?>
Вот возможное решение.
if (isset($_POST['var']))
{
if (!empty($_POST['var']))
{
echo $_POST['var'];
}
else
{
echo 'Please ensure you have entered your details';
}
}
else
{
echo 'Please ensure you have entered your details';
}
!empty()
недостаточно? Похоже, что empty()
не генерирует никаких предупреждений, если переменная не задана. Поэтому вам необходимо сначала проверить, существует ли переменная. empty()
кажется, по существу, равным !isset($var) || $var == false
!isset($var) || $var == false
как указано в документах [1].
Сначала проверьте с isset()
чтобы убедиться, что поле установлено. Но isset()
не подтверждает, что переменная POST имеет непустые данные. Чтобы обеспечить использование empty()
<?PHP
if(isset($_POST['var']) && !empty($_POST['var'])) {
echo $_POST['var'];
}
?>
Обратите внимание, что всегда проверяйте isset()
перед проверкой пустого, иначе его совершенно бессмысленно проверять, существует ли какая-либо переменная или нет, после проверки ее пустой или нет.
Вы можете использовать:
if(isset($_POST['var']) && !is_null($_POST['var']) && !empty($_POST['var']))
{
echo $_POST['var'];
}
echo $var;
, ноecho $_POST['var'];
:)