如何在php中验证null或empty

时间:2017-01-27 06:11:00

标签: php validation

我正在研究PHP,今天我遇到了一个字符串null的问题。我试图用GOOGLE验证太多东西,但没有成功。所以我来这里澄清。

我得到了$var1 = "null"

的价值

为了验证上述原因,我尝试了以下方法。

 $null = is_null($var1);

            if($null){
                $var1 = null;
            }

            if($var1 === null){
                $var1 = null;
            }

            if($var1 === "null"){
                $var1 = null;
            }

但上述方式并不成功。如何验证$var1 = "null"

4 个答案:

答案 0 :(得分:2)

您可以通过多种方式进行验证:

  1. 使用php变量处理函数is_null(mixed $var)
  2. 使用php变量处理函数isset(mixed $var)
  3. 使用php变量处理函数empty(mixed $var)
  4. 使用比较运算符=====!=
  5. is_null(混合$ var)

    你可以使用php变量处理函数is_null(mixed $var),如果var null ,则返回 TRUE ,否则 FALSE

    <?php
     $foo = NULL;
     $bar = 'NULL';
     var_dump(is_null($foo), is_null($bar));
    ?>
    

    <强>输出

    bool(true) bool(false)
    

    正如您所看到的,$bar = 'NULL'$bar = NULL两者都是不同的。实际上在一个用字符串初始化而不是NULL。

    isset(混合$ var)

    如果 var 存在,则返回 TRUE ,并且其值不是 NULL FALSE

    注意

    isset()仅适用于变量,因为传递任何其他内容都会导致解析错误。要检查是否设置了常量,请使用defined()函数。

    <?php
         $foo = NULL;
         $bar = 'NULL';
         var_dump(isset($foo), isset($bar));
    ?>
    

    <强>输出

    bool(false) bool(true)
    

    空(混合$ var)

    如果var存在并且具有非空的非零值,则返回 FALSE 。否则返回 TRUE

    <?php
         $foo = NULL;
         $bar = 'NULL';
         var_dump(empty($foo), empty($bar));
    ?>
    

    <强>输出

    bool(true) bool(false)
    

    =====!=

    您可以使用比较运算符=====!=来检查变量是否为空。

       <?php
         $foo = NULL;
         $bar = 'NULL';
    
    // Using == operator   
         echo "Using '==' operator\n";
         if($foo == NULL)
    
        echo "foo is NULL\n";
    
         else
    
        echo "foo is not NULL\n";
    
         if($bar == NULL)
    
        echo "bar is NULL\n";
    
         else
    
        echo "bar is not NULL\n";
    
    // Using === operator 
         echo "\nUsing '===' operator\n";
         if($foo === NULL)
    
        echo "foo is NULL\n";
    
         else
    
        echo "foo is not NULL\n";
    
         if($bar === NULL)
    
        echo "bar is NULL\n";
    
         else
    
        echo "bar is not NULL\n";
    
    ?>
    

    <强>输出

    Using '==' operator
    foo is NULL
    bar is not NULL
    
    Using '===' operator
    foo is NULL
    bar is not NULL
    

    =====之间的唯一区别是==只是检查左右值是否相等。但是,===运算符(注意额外的“=”)实际检查左边和右边的值是否相等,并检查它们是否属于相同的变量类型(比如它们是否都是布尔值) ,英特尔等。)。

答案 1 :(得分:1)

您正在混合变量类型,我想您想要比较null值,但是您将var设置为:

$var1 = "null";

这是一个字符串。在这种情况下,您的第三次尝试正常工作:

if($var1 === "null"){
    $var1 = null;
}

它使用相同的运算符(相同类型,相同的值),并且值相同,它将变量设置为NULL。

如果您希望is_null函数有效,请将$var1设置为null

$var1 = null;
if(is_null($var1)){
    // ok now we are here
}

请记住,is_null()返回一个布尔值,以便您可以将其内联到if语句中。

答案 2 :(得分:1)

这里是A more detail answer,但是如果您要处理&nbsp;,我想补充一下。

如果处理&nbsp;,先将其替换为str_replace(),然后使用empty()进行检查,则可以使用

empty(str_replace("&nbsp;" ,"" , $YOUR_DATA)) ? $YOUR_DATA = '--' : $YOUR_DATA;

答案 3 :(得分:1)

以我的方式

function expDate($getDate) {
    if(is_null($getDate)){
        return null;
    }else{
        $dob = $getDate;
        $result= explode('-',$dob);
        $date= $result[2];
        $month= $result[1];
        $year= $result[0];
        return $date.'-'.$month.'-'.$year;
    }
}