和null的區別

2021-07-12 06:35:03 字數 1481 閱讀 9782

string str1 = null; str引用為空

string str2 = ""; str引用乙個空串

也就是null沒有分配空間,""分配了空間,因此str1還不是乙個例項化的物件,而str2已經例項化。

注意因為null不是物件,""是物件。所以比較的時候必須是 if(str1==null)和if(str2.equals(""))。

物件用equals比較,null用等號比較。因此,如果str1=null;下面的寫法錯誤: 

if(str1.equals("")||str1==null) 

正確的寫法是 if(str1==null||str1.equals(""))

打個比方:乙個空玻璃杯,你不能說它裡面什麼都沒有,因為裡面有空氣,當然也可以把它弄成真空,null與" "的區別就象真空與空氣一樣。

sql中引號的用法

單引號,雙引號,不用引號

數值型不用引號

如:scondition += " and larticleid = " + larticleid;//因為larticleid是數字型,所以不用單引號

字元型要加單引號

如:scondition += " and stitle like '%" + stitle + "%'";

相比單引號,雙引號裡面的字段會經過編譯器解釋然後再當作html**輸出,單

引號裡面的不需要解釋,直接輸出。例如:

$abc='i love u'; 

echo $abc //結果是:i love u 

echo '$abc' //結果是:$abc 

echo "$abc" //結果是:i love u

所以在對資料庫裡面的sql語句賦值的時候也要用在雙引號裡面sql="select a,b,c from ..."

但是sql語句中會有單引號把欄位名引出來

例如:select * from table where user='abc';

這裡的sql語句可以直接寫成sql="select * from table where user='abc'"

但是如果象下面:

$user='abc'; 

sql1="select * from table where user=' ".$user." ' ";對比一下 

sql2="select * from table where user=' abc ' "

我把單引號和雙引號之間多加了點空格,希望你能看的清楚一點。

也就是把'abc' 替換為 '".$user."'都是在乙個單引號裡面的。只是把整個sql字串分割了。

sql1可以分解為以下3個部分 

1:"select * from table where user=' " 

2:$user 

3:" ' "

字串之間用 . 來連線,這樣能明白了吧。

另外非常重要的一點是,是字元型還是數值型,一定是以資料庫中為主而不是看程式中怎麼定義的,因為sql是執行在資料庫中的。

和null的區別

string str1 null str引用為空 string str2 str引用乙個空串 也就是null沒有分配空間,分配了空間,因此str1還不是乙個例項化的物件,而str2已經例項化。注意因為null不是物件,是物件。所以比較的時候必須是 if str1 null 和if str2.equa...

null和 的區別

資料庫中null和 是有區別的 select count 1 from eh device info d left join eh organization o on d.org id o.id where o.status d select count 1 from eh device info ...

和null的區別

string str1 null str引用為空 string str2 str引用乙個空串 也就是null沒有分配空間,分配了空間,因此str1還不是乙個例項化的物件,而str2已經例項化。注意因為null不是物件,是物件。所以比較的時候必須是 if str1 null 和if str2.equa...