php: Как проверить, что поле имеет пустое / пустое / NULL значение? - PullRequest
3 голосов
/ 04 февраля 2010

Я хочу отобразить ошибку, когда переменная имеет значение BLANK или значение EMPTY или NULL. Например, переменная показана ниже:

 $mo = strtotime($_POST['MondayOpen']);

и
var_dump($_POST['MondayOpen']) возвращает string(0) "".

Теперь я иду с подходом ниже

  1. Сначала нужно найти тип переменной $mo? (Строка или целое число или другое)

  2. Какую функцию лучше найти, что $mo не имеет значения.

Я провожу тест с $mo и получил эти результаты

is_int($mo);//--Return nothing
is_string($mo); //--Return bool(false) 
var_dump($mo);  //--Return bool(true)                   
var_dump(empty($mo));//--Return bool(true) 
var_dump($mo==NULL);//--Return bool(true) 
var_dump($mo=='');//--Return nothing

Пожалуйста, предложите оптимальный и правильный подход для проверки целостности переменной

Ответы [ 4 ]

4 голосов
/ 04 февраля 2010

var_dump выводит переменные для целей отладки, он не используется для проверки значения в обычном коде. PHP свободно набран, в большинстве случаев не имеет значения, является ли ваша переменная строковой или int, хотя вы можете привести ее, если вам нужно убедиться, что она одна, или использовать для проверки функции is_.

Чтобы проверить, если что-то пусто:

if ( empty( $mo ) ) {
  // error
}

empty () возвращает true, если переменная имеет значение 0, ноль, false или пустая строка.

3 голосов
/ 04 февраля 2010

выполнение strtotime вернет false, если не может преобразовать в метку времени.

$mo = strtotime($_POST['MondayOpen']);
if ($mo !== false)
{
//valid date was passed in  and $mo is type int
}
else
{
//invalid date let the user know
}
3 голосов
/ 04 февраля 2010

PHP предлагает функцию isset, чтобы проверить, не является ли переменная NULL и empty, чтобы проверить если переменная пуста.

Чтобы вернуть тип, вы можете использовать функцию PHP gettype

if (!isset($mo) || is_empty($mo)) {
 // $mo is either NULL or empty.
 // display error message
 }
0 голосов
/ 04 февраля 2010

Вы можете проверить его тип, используя:

gettype($mo);

но null и empty - это разные вещи, вы можете проверить с помощью этих функций:

if (empty($mo))
{
  // it is empty
}

if (is_null($mo))
{
  // it is null
}

Другой способ проверить, установлена ​​ли переменная, - использовать конструкцию isset .

if (isset($mo))
{
  // variable has been set
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...