проверить, если переменная пуста - PullRequest
33 голосов
/ 08 января 2012
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 ]

83 голосов
/ 08 января 2012

Если вы хотите проверить, является ли переменная действительно NULL, используйте оператор идентификации:

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

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

!isset($user_id)

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

empty($user_id)

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

!$user_id
9 голосов
/ 08 января 2012

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

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 не будет.

1 голос
/ 18 августа 2016

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

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

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

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

В отличие от нуля, что здесь удобно!

1 голос
/ 28 января 2015

здесь я объяснил, как работает пустая функция и 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';
    }
    ?>
1 голос
/ 08 января 2012

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

if (empty($user_id) || empty($user_name) || empty($user_logged)) {
}
0 голосов
/ 18 августа 2017

Для проверки на нулевые значения вы можете использовать is_null () , как показано ниже.

if (is_null($value)) {
   $value = "MY TEXT"; //define to suit
}
0 голосов
/ 06 июня 2017

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

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

0 голосов
/ 16 мая 2014
<?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);
0 голосов
/ 07 июля 2012

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

если пусто (переменная $) затем ....

0 голосов
/ 08 января 2012

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

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

is_string (), is_float (), is_int () и т. Д. Для дальнейшего тестирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...