PHP中空字符串介紹0、null、empty和false之間的關系
更新時間:2012年09月25日 20:24:17 作者:
用PHP開發(fā)那么久,PHP中空字符串、0、null、empty和false之間的關系總是有些不確定的東西。遇到它們應該用哪個方法函數去處理
如果用錯方法函數或是用少了,如果幾個方法函數的邏輯順序錯了,很可能就是一個漏洞,而且不容易找出來。糾結啊~
上網找找看哪位高人有總結出相關的結論出來,果然有!不過似乎不是很全面,我在這里稍完善了一下,僅供參考。
復制代碼 代碼如下:
// 判斷 0 與 ''、null、empty、false 之間的關系
$a = 0;
echo "0 與 ''、 empty、null、false 之間的關系:";
if($a == ''){
echo "0 == '';";
}else{
echo "0 != '';";
}
if(trim($a) == ''){
echo "trim(0) == '';";
}else{
echo "trim(0) != '';";
}
if(strval($a) == ''){
echo "strval(0) == '';";
}else{
echo "strval(0) != '';";
}
if($a === ''){
echo "0 === '';";
}else{
echo "0 !=== '';";
}
if(empty($a)){
echo "0 is empty;";
}else{
echo "0 is not empty;";
}
if(is_null($a)){
echo "0 is null;";
}else{
echo "0 is not null;";
}
if(is_numeric($a)){
echo "0 is numeric;";
}else{
echo "0 is not numeric;";
}
if(is_string($a)){
echo "0 is string;";
}else{
echo "0 is not string;";
}
if(!$a){
echo "0 is false;";
}else{
echo "0 is not false;";
}
// 判斷 '' 和 0、null、empty、false 之間的關系
$a = '';
echo "'' 和 0、empty、null、false 之間的關系:";
if($a == 0){
echo "'' == 0;";
}else{
echo "'' != 0;";
}
if(intval($a) == 0){
echo "intval('') == 0;";
}else{
echo "intval('') != 0;";
}
if(empty($a)){
echo "'' is empty;";
}else{
echo "'' is not empty;";
}
if(is_null($a)){
echo "'' is null;";
}else{
echo "'' is not null;";
}
if(is_numeric($a)){
echo "'' is numeric;";
}else{
echo "'' is not numeric;";
}
if(is_string($a)){
echo "'' is string;";
}else{
echo "'' is not string;";
}
if(!$a){
echo "'' is false;";
}else{
echo "'' is not false;";
}
// 判斷 null 和 ''、0、empty、false 之間的關系
$a = null;
echo "null 和 ''、0、empty、false 之間的關系:";
if($a == ''){
echo "null == '';";
}else{
echo "null != '';";
}
if($a == 0){
echo "null == 0;";
}else{
echo "null != 0;";
}
if($a === ''){
echo "null === '';";
}else{
echo "null !=== '';";
}
if($a === 0){
echo "null === 0;";
}else{
echo "null !=== 0;";
}
if(strval($a) == ''){
echo "strval(null) == '';";
}else{
echo "strval(null) != '';";
}
if(intval($a) == 0){
echo "intval(null) == 0;";
}else{
echo "intval(null) != 0;";
}
if(empty($a)){
echo "null is empty;";
}else{
echo "null is not empty;";
}
if(is_numeric($a)){
echo "null is numeric;";
}else{
echo "null is not numeric;";
}
if(is_string($a)){
echo "null is string;";
}else{
echo "null is not string;";
}
if(!$a){
echo "null is false;";
}else{
echo "null is not false;";
}
echo "";
輸出的結果是:

我想根據輸出結果都可以清楚了解決空字符串、0、null、empty和false之間的大概關系,在開發(fā)過程中靈活運用上述代碼里的方法,加上良好的邏輯,基本上應該是不會出現問題的了。
點擊下載相關源代碼
您可能感興趣的文章:
- java json不生成null或者空字符串屬性(詳解)
- Oracle數據庫中對null值的排序及mull與空字符串的區(qū)別
- ASP 空字符串、IsNull、IsEmpty區(qū)別分析
- js刪除對象/數組中null、undefined、空對象及空數組方法示例
- js判斷輸入框不能為空格或null值的實現方法
- jackson 實體轉json 為NULL或者為空不參加序列化(實例講解)
- JavaScript中undefined和null的區(qū)別
- javascript 中null和undefined區(qū)分和比較
- JavaScript基本類型值-Undefined、Null、Boolean
- js中null與空字符串""的區(qū)別講解
相關文章
php array_intersect比array_diff快(附詳細的使用說明)
在PHP中,使用 array_intersect 求兩個數組的交集比使用 array_diff 求同樣兩個數組的并集要快。2011-07-07php 遍歷顯示文件夾下所有目錄、所有文件的函數,沒有分頁的代碼
一個簡單的目錄遞歸函數 第一種實現辦法:用dir返回對象 第二種實現辦法:用readdir()函數2008-11-11