• Java 中“”、null、isEmpty()——PHP 中empty()


    事前

    同事被调走了,留下来的代码还没测试。

    发现输入框输入0的时候,无法执行数据库数据插入工作。找了html,js发现都没有check。

    php里也找了许久。发现empty有点可疑。因为之前是做java 的,php不太熟,所以就去查了一下。

    原来php中empty过滤掉空字符串的同时对0也会进行过滤。

    接下来简单做个比对~

    Java


    代码:

     1     public static void main(String[] args) {
     2 
     3         String a = "";
     4         String b = null;
     5         String c = new String();
     6         Kong(a, "a");
     7         Kong(b, "b");
     8         Kong(c, "c");
     9 
    10     }
    11 
    12     private static void Kong(String x, String y) {
    13 
    14         if ("" == x) {
    15             System.out.println("'' == " + y);
    16         } else {
    17             System.out.println("'' != " + y);
    18         }
    19 
    20         if (null == x) {
    21             System.out.println("null == " + y);
    22         } else {
    23             System.out.println("null != " + y);
    24         }
    25 
    26         try {
    27 
    28             if (x.isEmpty()) {
    29                 System.out.println(y + " isEmpty");
    30             } else {
    31                 System.out.println(y + " isNotEmpty");
    32             }
    33 
    34         } catch (NullPointerException e) {
    35 
    36             System.out.print(y + " is empty" + " 报错啦: ");
    37             System.out.println(e);
    38 
    39         }
    40 
    41     }    

    结果为:

    1 '' == a
    2 null != a
    3 a isEmpty
    4 '' != b
    5 null == b
    6 b is empty 报错啦: java.lang.NullPointerException
    7 '' != c
    8 null != c
    9 c isEmpty

    由此能看出a为空,分配了内存空间。b不为空,没分配内存空间。c不为空,分配了内存空间。isEmpty不能作用在null上,且a与c都是isEmpty。

    PHP


    代码:

     1 <?php
     2  $a = '';
     3  $b = null;
     4  $c = 0;
     5  Kong($a, "a");
     6  Kong($b, "b");
     7  Kong($c, "c");
     8  
     9  function Kong($x , $y){
    10 
    11      if(empty($x)){
    12          echo $y." isEmpty"."</br>";
    13      }else{
    14          echo $y." isNotEmpty"."</br>";
    15      }
    16  }

    结果为:

     1  a isEmpty
     2  b isEmpty
     3  c isEmpty 
    

     果然,问题就出在这里了。所以只好把这个改成==‘’了。问题解决了,同时也学了东西。感谢那位调走的同事……

    empty

    判断变量是否已配置。

    语法: int empty(mixed var);

    返回值: 整数

    函数种类: PHP 系统功能


    内容说明

    本函数用来测试变量是否已经配置。若变量已存在、非空字符串或者非零,则返回 false 值;反之返回 true。

  • 相关阅读:
    广义表的创建和遍历
    dev c++ Boost库的安装
    NAT模式
    vmware桥接模式
    smb与samba
    利用Linux的Samba服务模拟NT域
    使用samba进行共享文件操作步骤
    安装chrome
    使用虚拟机上网第二步
    TCP协议三次握手过程分析
  • 原文地址:https://www.cnblogs.com/6luv-ml/p/6479095.html
Copyright © 2020-2023  润新知