проверить, пуста ли переменная

if ($user_id == NULL || $user_name == NULL || $user_logged == NULL) {
    $user_id = '-1';
    $user_name = NULL;
    $user_logged = NULL;
}
if ($user_admin == NULL) {
    $user_admin = NULL;
}
  1. есть ли короткий способ сделать это ?
  2. и если я прав, он должен быть протестирован с is_null?
  3. вполне возможно $user_id, $user_name и $user_logged написать в одной строке (может быть, массив?) без повторения NULL ?

12 ответов


если вы хотите проверить, является ли переменная действительно NULL использовать оператор идентичности:

$user_id === NULL  // FALSE == NULL is true, FALSE === NULL is false
is_null($user_id)

если вы хотите проверить, не установлена ли переменная:

!isset($user_id)

или если переменная не пуста, пустая строка, ноль,..:

empty($user_id)

если вы хотите проверить, не является ли переменная пустой строкой,! также будет достаточно:

!$user_id

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

if (!$var){ }

или:

if ($var === null){ } // This checks if the variable, by type, IS null.

или:

if (empty($var)){ }

вы можете проверить, объявлено ли это с:

if (!isset($var)){ }

обратите внимание, что PHP интерпретирует 0 (целое число) и "" (пустая строка) и false как "пустые" - и не являются разными типами, эти конкретные значения PHP считаются одинаковыми. Не имеет значения, установлен ли $var/объявлен или объявлен как $var = 0 или $var ="". Так часто вы сравниваете с помощью оператора===, который сравнивается с типом данных. Если $var равно 0 (целое число), $var == "" или $var == false будет проверять, но $var === "" или $var === false не будет.


empty() немного короче, как альтернатива проверки !$user_id как предложено в другом месте:

if (empty($user_id) || empty($user_name) || empty($user_logged)) {
}

здесь я объяснил, как работает пустая функция и isset, пожалуйста, используйте тот, который подходит также вы можете использовать функцию is_null также

<?php
    $val = 0;
    //evaluates to true because $var is empty
    if (empty($val)) {
        echo '$val is either 0, empty, or not set at all';
    }
    //evaluates to true because $VAR IS SET
    if (isset($val)) {
        echo '$val is set even though it is empty';
    }
    ?>

пожалуйста, определите, что вы подразумеваете под "пустым".

обычно я использую тест isset().


вы можете использовать процедуру isset ().

также дополнительно вы можете ссылаться на диапазон функций is_type (), таких как

is_string(), is_float(),is_int() и т. д. И далее разработан тест


1.

if(!($user_id || $user_name || $user_logged)){
    //do your stuff
}

2 . Нет. Я на самом деле не понимаю, почему вы пишете такую конструкцию.

3 . Поместите все значения в массив, например $ar ["user_id"] и т. д.


<?php

$nothing = NULL;
$something = '';
$array = array(1,2,3);

// Create a function that checks if a variable is set or empty, and display "$variable_name is SET|EMPTY"
function  check($var) {
    if (isset($var)) {
        echo 'Variable is SET'. PHP_EOL;
  } elseif (empty($var)) { 
        echo 'Variable is empty' . PHP_EOL;

   } 

} 

check($nothing);
check($something);
check($array);

стоит отметить - и я обнаружил это только после почти 9 лет PHP-кодирования, что лучший способ проверить любую переменную - использовать функцию empty (). Это потому, что он не генерирует ошибки, и даже если вы отключите их - PHP все равно генерирует их! однако empty () не будет возвращать ошибки, если переменная не существует. Поэтому я считаю, что правильный ответ заключается не в том, чтобы проверить его значение null, а в следующем

if (!empty($var) && is_null($var))

обратите внимание на руководство PHP

переменная считается пустой, если она не существует или ее значение равно false

в отличие от null, что удобно здесь!


чувствовал себя вынужденным ответить на это из-за других ответов. Используйте empty (), если можете, потому что он охватывает больше баз. В будущем вы будете благодарить меня.

например, вам придется делать такие вещи, как isset() && strlen (), где вместо этого вы можете использовать empty(). Думай об этом так, как будто это пустота !isset ($var) || $var==false


для проверки значений null вы можете использовать переменной is_null() как показано ниже.

if (is_null($value)) {
   $value = "MY TEXT"; //define to suit
}

лучший и простой способ проверить, пуста ли переменная в PHP, - это просто использовать функцию empty ().

Если пусто ($variable) затем ....