检查变量是否为空

时间:2012-01-08 12:42:17

标签: php if-statement null

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. 进行测试
  4. 可能$user_id$user_name$user_logged在一行(可能是数组?)中写入而不重复NULL

12 个答案:

答案 0 :(得分:80)

如果您想测试变量是否真的 NULL,请使用身份运算符:

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

如果要检查是否未设置变量:

!isset($user_id)

或者如果变量不为空,则为空字符串,零,..:

empty($user_id)

如果要测试变量是否不是空字符串,!也就足够了:

!$user_id

答案 1 :(得分:9)

您可以通过多种方式检查它是否未设置(或为空)。

if (!$var){ }

或者:

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

或者:

if (empty($var)){ }

您可以检查是否声明:

if (!isset($var)){ }

请注意,PHP将0(整数)和“”(空字符串)和false解释为“空” - 并且dispite是不同的类型,这些特定值由PHP认为是相同的。如果永远不设置/声明$ var或者声明为$ var = 0或$ var =“”,则无关紧要。因此,通常使用===运算符进行比较,该运算符与数据类型进行比较。如果$ var为0(整数),$ var ==“”或$ var == false将验证,但$ var ===“”或$ var === false则不会。

答案 2 :(得分:1)

empty()稍微缩短一点,作为检查其他地方建议的!$user_id的替代方法:

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

答案 3 :(得分:1)

这里我已经解释了空函数和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';
    }
    ?>

答案 4 :(得分:1)

值得注意的是 - 我在PHP编码近9年后才发现这一点,检查任何变量的最佳方法是使用empty()函数。这是因为它不会产生错误,即使你关闭它们 - PHP仍会生成它们!如果变量不存在,则empty()不会返回错误。所以我认为正确的答案不是检查它是否为空而是要做以下

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

请注意PHP手册

  如果

变量不存在或者其值等于FALSE

,则该变量被视为空

相对于null而言,这里很方便!

答案 5 :(得分:0)

1

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

2。不,我实际上不明白你为什么写这样的结构。

3。将所有值放入数组,例如$ ar [“user_id”]等等。

答案 6 :(得分:0)

请用“空”来定义你的意思。

我通常使用的测试是isset()

答案 7 :(得分:0)

你可以使用isset()例程。

另外,您可以引用一系列is_type()函数,如

is_string(),is_float(),is_int()等进一步具体测试

答案 8 :(得分:0)

在PHP中检查变量是否为空的最佳和最简单的方法就是使用empty()函数。

如果为空($ variable) 然后 ....

答案 9 :(得分:0)

<?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);

答案 10 :(得分:0)

由于其他回应,感到不得不回答这个问题。如果可以,请使用empty(),因为它涵盖了更多的基础。未来你会感谢我。

例如,你必须做像isset()&amp;&amp ;; strlen(),你可以使用empty()。把它想象成空的就像!isset($ var)||是$ var ==假

答案 11 :(得分:0)

要检查空值,您可以使用is_null(),如下所示。

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