在 PHP 的世界里,'0.0'、'0.00'和'0.000' 'false'是否被认为为空?

在 PHP 的世界里,'0.0'、'0.00'和'0.000'是否被认为为空?

     我们经常需要对0, 0.0,'0',false,null,'',"",array() 等等这类数据判断是否为空,下面来整理一下。

      1、以下变量都被认为是空。

      ' ' (空字符串)
      0 (作为整数的0)
      0.0 (作为浮点数的0)
      "0" (作为字符串的0)
      null
      false
      array( )(一个空数组)
      $var;(一个声明了,但是没有值的变量)

     2.  运行一下

 1 <?php
 2 
 3 if (empty(0.0)){
 4     echo 1;
 5 }else{
 6     echo 2;
 7 }
 8 
 9 // 结果为1 
10 
11 if (empty("0.0")){
12     echo 1;
13 }else{
14     echo 2;
15 }
16 
17 // 结果为2

   说明:

         1) PHP 认为 0.0 是空,同理 0.00 和 0.000 也会被等同 0.0、 '0'、"0" 一样被认为是空,所以 empty 将返回 true 来表达 PHP 的规则。

         2) PHP中,'0,0'、'0.0'、'0.00'和'0.000',"false"并不被认为是空,所以 empty 将返回 false。

    3.  PHP作为弱语言类型,在比较值时会做隐式转换

1 <?php
2 // 比较值
3 if (0.0=='0.0'){
4     echo 1;
5 }else{
6     echo 2;
7 }
8 
9 // 结果为1

    4. 判断数组是否为空

    举个例子

 1 <?php
 2 
 3 $arr = [""];
 4 if (empty($arr)) {
 5     echo "数组为空";
 6 } else {
 7     echo "数组不为空";
 8 }
 9 
10 // 结果:数组不为空

    所以在判断数组是否为空的时候,应该要先用array_filter()过滤之后再来判断,否则容易出现跟预期不符的结果

posted @ 2022-02-28 13:17  欢乐豆123  阅读(985)  评论(0编辑  收藏  举报