php中empty()、isset()、is_null()和變數本身的布林判斷區別(轉)
在php指令碼中,我們經常要去判斷一個變數是否已定義或者是否為空,就需要用到這些函式empty()、isset()、is_null()和其本身作為引數,下面小段程式做個簡要比較
<?php
//預定義變數陣列:空字元,字元0,陣列0,null,布林false,空陣列
$arr_var = array(``, `0`, 0, null, false, array());
foreach ($arr_var as $value) {
echo `<br>傳入值為:` . $value . `<br>`;
if (!isset($value)) {
echo `isset()==false<br>`;
}
if (empty($value)) {
echo `empty()==true<br>`;
}
if (!$value) {
echo `self==false<br>`;
}
if (is_null($value)) {
echo `is_null()==true<br>`;
}
}
?>
輸出結果:
傳入值為:
empty()==true
self==false
傳入值為:0
empty()==true
self==false
傳入值為:0
empty()==true
self==false
傳入值為:
isset()==false
empty()==true
self==false
is_null()==true
傳入值為:
empty()==true
self==false
傳入值為:Array
empty()==true
self==false
總結一:從結果中可以看出,“”、0、“0”、NULL、FALSE、array()這幾個中,empty()和“變數本身作為引數”結果一致,均作為“空”來處理,而isset()和is_null ()僅當是null時,才作為“空”來處理(值得注意的是false並不會被認為是空)
下面我們看下當一個變數未定義初始化時,這些函式返回的是什麼
echo `<br>傳入值為:undefine<br>`;
if (!isset($value_undefine)) {
echo `isset()==false<br>`;
}
if (empty($value_undefine)) {
echo `empty()==true<br>`;
}
if (!$value_undefine) {
echo `self==false<br>`;
}
if (is_null($value_undefine)) {
echo `is_null()==true<br>`;
}
輸出結果:
傳入值為:undefine
isset()==false
empty()==true
(此處警告變數未定義)
self==false
(此處警告變數未定義)
is_null()==true
總結二:由結果可看出,當變數未定義時,is_null()和“本身引數”是不允許作為引數判斷的,雖然結果可以判斷出來為“空”,建議不使用。
isset()和empty()可以正常判斷出為”空”的.
1
2
3
4
5
6
7
8
9
|
最後總結: isset(),僅當null和未定義,返回false empty (), "" 、0、 "0" 、NULL、FALSE、 array (),未定義,均返回false
本身作為引數,與 empty ()一致,但接受未定義變數時,報警告
is_null (),僅判斷是否為null,未定義報警告
|
http://www.cnblogs.com/huangzhen/archive/2011/08/21/2147808.html#3303118
相關文章
- php中empty()、isset()、is_null()和變數本身的布林判斷區別PHPNull變數
- PHP中empty、isset和is_null的使用區別PHPNull
- ***PHP中empty()和isset()的區別PHP
- php--isset()、is_null() 、empty()PHPNull
- php true false isset empty is_null array()PHPFalseNull
- php資料型別以及判斷isset或者empty使用PHP資料型別
- PHP中isset()與empty()的使用區別詳解PHP
- PHP isset()與empty()的使用區別詳解PHP
- javascript 布林型別值判斷JavaScript型別
- php中isset(),unnset(),empty()函式PHP函式
- PHP 由 empty 和 isset 面試題引起的思考PHP面試題
- php中判斷變數是否為空PHP變數
- Delphi中布林型別辨析 (轉)型別
- javascript中如何判斷變數的型別?JavaScript變數型別
- JavaScript 中對變數型別的判斷JavaScript變數型別
- 面試題:布林變數面試題變數
- javascript中對變數型別的判斷方法JavaScript變數型別
- 如何判斷變數型別變數型別
- python 判斷一個表示式是什麼布林型別bool()Python型別
- php判斷變數是不是null的方法PHP變數Null
- php程式設計基本功之isset與emptyPHP程式設計
- 程式設計好習慣:布林判斷的書寫順序程式設計
- JavaScript判斷變數型別的四種方法JavaScript變數型別
- python 中如何判斷獲取檢視變數的型別Python變數型別
- TypeScript 布林型別TypeScript型別
- SCSS 布林 型別CSS型別
- javascript中的typeof和型別判斷JavaScript型別
- 如何判斷JavaScript中的兩變數是否相等?JavaScript變數
- 【冰山白皮書】JS中的布林 數字 字串JS字串
- 字串非空判斷:StringUtils中 isNotEmpty 和isNotBlank的區別字串
- 變數,運算子,if判斷變數
- PHP 中的 -> 和 :: 的區別PHP
- javascript判斷變數是否是數值型別程式碼JavaScript變數型別
- linux 中如何判斷變數是否為數值Linux變數
- 成員變數和區域性變數的區別變數
- php中判斷iphone版本PHPiPhone
- 布林代數入門
- js判斷一個變數是否為字串型別JS變數字串型別