判断php变量是否定义,是否为空

isset() 【1】

Returns TRUE if var exists and has value other than NULL, FALSE otherwise.

输入可以是多个变量,只有所有的变量为真的时候,返回真

empty()【2】

Returns FALSE if var has a non-empty and non-zero value.

The following things are considered to be empty:

  • "" (an empty string)
  • 0 (0 as an integer)
  • "0" (0 as a string)
  • NULL
  • FALSE
  • array() (an empty array)
  • var $var; (a variable declared, but without a value in a class)

输入只能是一个变量

is_null() 【3】

Returns TRUE if var is null , FALSE otherwise.

   A variable is considered to be null if:

  • it has been assigned the constant NULL.

  • it has not been set to any value yet.

  • it has been unset().    

使用 PHP 函数对变量 $x 进行比较
表达式gettype()empty()is_null()isset()if($x) Boolean
$x = ""; string TRUE FALSE TRUE FALSE
$x = null; NULL TRUE TRUE FALSE FALSE
var $x; NULL TRUE TRUE FALSE FALSE
$x is undefined NULL TRUE TRUE FALSE FALSE
$x = array(); array TRUE FALSE TRUE FALSE
$x = false; boolean TRUE FALSE TRUE FALSE
$x = true; boolean FALSE FALSE TRUE TRUE
$x = 1; integer FALSE FALSE TRUE TRUE
$x = 42; integer FALSE FALSE TRUE TRUE
$x = 0; integer TRUE FALSE TRUE FALSE
$x = -1; integer FALSE FALSE TRUE TRUE
$x = "1"; string FALSE FALSE TRUE TRUE
$x = "0"; string TRUE FALSE TRUE FALSE
$x = "-1"; string FALSE FALSE TRUE TRUE
$x = "php"; string FALSE FALSE TRUE TRUE
$x = "true"; string FALSE FALSE TRUE TRUE
$x = "false"; string FALSE FALSE TRUE TRUE

(上表没有找到原始来源,谁知道请告诉我)

如果变量是一个object该如何呢?

表达式gettype()empty()is_null()isset()if($x) Boolean
$x = new object()  object FALSE FALSE TRUE TRUE

参考:

【1】http://php.net/manual/en/function.isset.php

【2】http://www.php.net/manual/en/function.empty.php

【3】http://www.php.net/manual/en/function.is-null.php

原文地址:https://www.cnblogs.com/ainima/p/6331339.html