如何在php中验证null或空

Boj*_*iah 0 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;
            }
Run Code Online (Sandbox Code Playgroud)

但以上方式都不成功。我如何验证$var1 = "null"

Pra*_*yal 8

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

  1. 通过使用以下php变量处理函数

    • is_null(mixed $var)
    • isset(mixed $var)
    • empty(mixed $var)
  2. 通过使用比较运算符=====!=

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));
?>
Run Code Online (Sandbox Code Playgroud)

输出

bool(true) bool(false)
Run Code Online (Sandbox Code Playgroud)

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


isset(混合 $var)

如果var存在并且具有除NULL以外的,则返回TRUE,否则返回FALSE

笔记

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

<?php
     $foo = NULL;
     $bar = 'NULL';
     var_dump(isset($foo), isset($bar));
?>
Run Code Online (Sandbox Code Playgroud)

输出

bool(false) bool(true)
Run Code Online (Sandbox Code Playgroud)

空(混合 $var)

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

<?php
     $foo = NULL;
     $bar = 'NULL';
     var_dump(empty($foo), empty($bar));
?>
Run Code Online (Sandbox Code Playgroud)

输出

bool(true) bool(false)
Run Code Online (Sandbox Code Playgroud)

=====!=

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

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

?>
Run Code Online (Sandbox Code Playgroud)

输出

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

Using '===' operator
foo is NULL
bar is not NULL
Run Code Online (Sandbox Code Playgroud)

==和之间的唯一区别=====仅检查左右值是否相等。但是,===运算符(注意额外的“=”)实际上会检查左右值是否相等,并且还会检查它们是否属于相同的变量类型(例如它们是否都是布尔值、整数等) .