• 技术文章 >后端开发 >php教程

    浅谈PHP中isset()、empty()、is_null()的区别

    青灯夜游青灯夜游2021-06-25 18:39:53转载822
    在PHP中,isset()、empty()和is_null()都可用于测试变量的值,那么它们之间有什么差异呢?下面本篇文章就来对比一下这三个函数,了解一下它们的区别。

    让我们从一些定义开始。

    PHP isset() vs empty()

    正如我们从定义中看到的,如果我们之前定义了该变量并将其值设置为NULL 以外的值,那么isset() 将返回true 。这可以包括0 ,一个空字符串或false 。另一方面,只要变量的值被设置为falseempty() 就会返回true ,我们称这些值为 "假值"。错误值的例子包括:0 ,空字符串"" 和字符串"0" ,空数组NULL ,当然还有布尔值false

    isset()empty() 之间的一个相似之处是,它们都是语言结构,因此不能使用变量函数来调用。

    下面的代码片断应该可以解释这两者之间的区别。

    <?php
    
    $fruit = '';
    
    if(isset($fruit)) {
        echo 'Do you like '.$fruit.'?';
    }
    // Output:  Do you like ?
    
    if(!empty($fruit)) {
        echo 'Do you like '.$fruit.'?';
    }
    // No Output
    
    ?>

    请注意,empty() 可以使用isset() 函数来编写。

    <?php
    
    function my_empty($x) {
      return !isset($x) || $x == false
    }

    当然,通常只是使用内置的empty() 函数更容易。

    PHP isset() vs is_null()

    如果一个变量的值被明确地设置为NULL ,则is_null() 函数返回true 。否则,它只是返回false 。另一方面,只要定义了一个变量,并且其值不是NULLisset() 将返回true

    下面是一个基本的例子来说明它们之间的区别。

    <?php
    
    $fruit = NULL;
    
    if(isset($fruit)) {
        echo 'Do you like '.$fruit.'?';
    }
    // No Output
    
    if(is_null($fruit)) {
        echo 'There is no fruit.';
    }
    // Output: There is no fruit.
    
    ?>

    PHP empty() vs is_null()

    如果一个变量的值被评估为falseempty() 函数将返回true 。这可能意味着空字符串,NULL ,整数0 ,或一个没有元素的数组。另一方面,只有当变量的值为NULLis_null() 才会返回true

    下面是一个基本的例子来说明它们之间的区别。

    <?php
    
    $fruit = NULL;
    
    if(isset($fruit)) {
        echo 'Do you like '.$fruit.'?';
    }
    // No Output
    
    if(is_null($fruit)) {
        echo 'There is no fruit.';
    }
    // Output: There is no fruit.
    
    ?>

    需要记住的重要事项

    有两个提示,你可以用来编写更简洁的代码,并在将来避免错误。

    1.与empty()is_null() 不同,你可以一次传递多个值给isset() ,以同时检查其中是否有未定义或设置为NULL 。在这种情况下,isset() ,只有在传递的值都不是NULL ,才会返回true

    2.2. 不要使用== 来检查一个值是否是NULL 。这将会给像空字符串这样的评估为false 的值带来错误的肯定。

    推荐学习:《PHP视频教程

    以上就是浅谈PHP中isset()、empty()、is_null()的区别的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:PHP isset() empty() is_null()
    上一篇:如何让tomcat支持PHP运行 下一篇:分享PHP中使用PDO操作事务的一些小测试
    VIP会员

    相关文章推荐

    • PHP中的isset()和!empty()函数的异同• PHP中如何利用empty()检查一个变量是否为空• PHP中什么是enum类型?set类型?• php怎么将关联数组转成索引数组

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网