從表面上看,很容易誤解empty()函數是判斷字符串是否為空的函數,其實并不是,我也因此吃了很多虧。
empty()函數是用來測試變量是否已經配置。若變量已存在、非空字符串或者非零,則返回 false 值;反之返回 true值。所以,當字符串的值為0時,也返回true,就是執行empty內部的語句。這就是陷阱。
如: 假設 $value = 0; 則empty($value)=false。
勸告各位,千萬注意使用empty()函數。
判斷字符串是否為空,可以這么判斷: if ($value=="") ...
* 格式:bool empty ( mixed var )
* 功能:檢查一個變量是否為空
* 返回值:
* 若變量不存在則返回 TRUE
* 若變量存在且其值為""、0、"0"、NULL、、FALSE、 array()、var $var; 以及沒有任何屬性的對象,則返回 TURE
* 若變量存在且值不為""、0、"0"、NULL、、FALSE、 array()、var $var; 以及沒有任何屬性的對象,則返回 FALSE
* 版本:PHP 3, PHP 4, PHP 5
從表面上看,很容易誤解empty()函數是判斷字符串是否為空的函數,其實并不是,我也因此吃了很多虧。 empty()函數是用來測試變量是否已經配置。若變量已存在、非空字符串或者非零,則返回 false 值;反之返回 true值。所以,當字符串的值為0時,也返回true,就是執行empty內部的語句。這就是陷阱。如: 假設 $value = 0; 則empty($value)=false。勸告各位,千萬注意使用empty()函數。判斷字符串是否為空,可以這么判斷: if ($value=="") ... 格式:bool empty ( mixed var ) 功能:檢查一個變量是否為空 返回值:若變量不存在則返回 TRUE 若變量存在且其值為""、0、"0"、NULL、、FALSE、array()、var $var; 以及沒有任何屬性的對象,則返回 TURE 若變量存在且值不為""、0、"0"、NULL、、FALSE、array()、var $var; 以及沒有任何屬性的對象,則返回 FALSE 版本:PHP 3, PHP 4, PHP 5
<table width="760" border="1" align="center" cellpadding="3"><?$dir = './2017/08/23/';$object[] = @readdir($dir); foreach ($object as $dirail)if (empty($dirail)) {?><tr> <td align="center"><font color="red">目錄下沒有圖片</font></td> </tr><? } else { ?> <tr> <td align="center"><font color="red">目錄下有圖片</font></td> </tr><? } ?></table>
新聞熱點
疑難解答