检查变量是否为空

Zer*_*f3r 34 php null if-statement

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;
}
Run Code Online (Sandbox Code Playgroud)
  1. 有没有最短的方法呢?
  2. 如果我是对的,应该进行测试is_null
  3. 这是可能的$user_id,$user_name$user_logged写入一行(可能是数组?)而不重复NULL

Rob*_*b W 85

如果要测试变量是否真的 NULL,请使用identity运算符:

$user_id === NULL  // FALSE == NULL is true, FALSE === NULL is false
is_null($user_id)
Run Code Online (Sandbox Code Playgroud)

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

!isset($user_id)
Run Code Online (Sandbox Code Playgroud)

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

empty($user_id)
Run Code Online (Sandbox Code Playgroud)

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

!$user_id
Run Code Online (Sandbox Code Playgroud)

  • 是的,文档:[`isset`](http://php.net/manual/en/function.isset.php),[`is_null`](http://php.net/manual/en/function. is-null.php),[`empty`](http://php.net/manual/en/function.empty.php).从代码判断,我假设变量必须是一个字符串.所以,我建议:**`if(!is_string($ user_id)|| $ user_id ==='')`**. (2认同)

Mar*_*sen 9

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

if (!$var){ }
Run Code Online (Sandbox Code Playgroud)

要么:

if ($var === null){ } // This checks if the variable, by type, IS null.
Run Code Online (Sandbox Code Playgroud)

要么:

if (empty($var)){ }
Run Code Online (Sandbox Code Playgroud)

你可以检查它是否声明:

if (!isset($var)){ }
Run Code Online (Sandbox Code Playgroud)

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