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。

原文地址:https://www.cnblogs.com/6luv-ml/p/6479095.html