代码之家  ›  专栏  ›  技术社区  ›  caw

PHP:变量为空或未设置或什么?

  •  9
  • caw  · 技术社区  · 16 年前

    if (isset($data)) {
    
    if (!empty($data)) {
    
    if ($data != '') {
    
    if ($data) {
    

    他们都做同样的事吗?

    4 回复  |  直到 16 年前
        1
  •  10
  •   hsz    16 年前
    if (isset($data)) {  
    

    变量刚刚设置好——在这一行之前,我们声明了名为“data”的新变量,即。

    if (!empty($data)) {  
    

    变量中填充了数据。它不能有空数组,因为 $data 有数组类型但仍然没有数据,即$data=array(1); 不能为null、空字符串、空数组、空对象、0等。

    if ($data != '') {  
    

    变量不是空字符串。但也不能为空值(上面的示例)。
    !== ===

    if ($data) {  
    

    变量用任何数据填充。一模一样 !empty($data) .

        2
  •  22
  •   jlb    11 年前

    http://www.php.net/manual/en/types.comparisons.php

    Expression  gettype() empty() is_null() isset() if($x)
    $x = "";        string  TRUE    FALSE   TRUE    FALSE
    $x = null;      NULL    TRUE    TRUE    FALSE   FALSE
    var $x;         NULL    TRUE    TRUE    FALSE   FALSE
    $x 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
    

    如你所见, if(!empty($x)) if($x) if(!is_null($x)) 等于 if(isset($x)) $data != '' 去吧,是的 TRUE 如果 $data NULL , '' FALSE 0 (松散比较)。

        3
  •  4
  •   meder omuraliev    16 年前

    1. 如果设置了变量,则为true。变量可以设置为空,这是真的。

    2. 如果设置了变量,则为true 不等于空字符串、0、'0',NULL、FALSE、空数组。这显然不同于 isset .

    3. 如果变量不等于空字符串,如果变量未设置为空字符串。

    4. 如果变量强制为true,如果未设置该变量,它将强制为false。

        4
  •  0
  •   Skawful    16 年前

    if(isset($data))-确定是否设置了变量(未下注) 'unset()' 事实并非如此 NULL .

    如果($data!=''){这是一种字符串类型,用于检查$data是否不等于空字符串

    if($data){这是一个查找真或假的过程(aka:0或1)

    推荐文章