проверить, пуста ли переменная
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;
}
- есть ли короткий способ сделать это ?
- и если я прав, он должен быть протестирован с
is_null
? - вполне возможно
$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) затем ....