最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • PHP isset() vs empty() vs is_null()

    正文概述 转载于:掘金(后端之巅)   2021-06-24   300

    在使用php编写的几乎每个程序中都会用到变量。大多数时候,这些变量都有一个值,而且我们在创建它们时通常都有一个初始值。然而,总有一种可能,你所使用的某些变量没有被初始化。这可能会导致PHP发出使用未定义变量的警告。

    造成未定义变量的原因有很多。最常见的是你实际上没有定义这个变量,或者你在其他地方重复使用它时犯了一个拼写错误。这只是一个编程错误。然而,另一种可能导致未定义变量的情况是,它被有条件地定义。

    你也可能发现一个变量的值是NULL 。这也有可能发生,原因有很多。例如,该变量可能只是没有被初始化一个值。或者,空值可能从一个函数中返回,以示某种错误。

    在任何情况下,在一个变量被定义之前,或者当它有一个空值时,使用它可能会产生意想不到的后果。在本教程中,我们将告诉你如何检查一个元素是否已被定义,并查看它是否为空或空。

    你可以使用 [isset()](https://www.php.net/manual/en/function.isset.php), [empty()](https://www.php.net/manual/en/function.empty.php)[is_null()](https://www.php.net/manual/en/function.is-null.php)来检查这些条件中的一个或全部是否为真或假。

    定义

    让我们从一些定义开始。

    1. isset() : 你可以用isset() 来确定一个变量是否被声明,并且与null 不同。
    2. empty() : 它用于确定变量是否存在,并且变量的值没有评估为false
    3. is_null() : 这个函数用来检查一个变量是否是null

    PHPisset() vsempty()

    正如我们从定义中看到的,如果我们之前定义了该变量并将其值设置为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() 函数更容易。

    PHPisset() vsis_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.
    
    ?>
    

    PHPempty() vsis_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 的值带来错误的肯定。

    最后的思考

    本教程快速解释了isset(),empty()is_null() 之间的区别。希望你现在能够确定在你的代码中使用哪一个是正确的。

    PHP isset() vs empty() vs is_null()PHP isset() vs empty() vs is_null()PHP isset() vs empty() vs is_null()


    起源地下载网 » PHP isset() vs empty() vs is_null()

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元