日期:2014-05-16  浏览次数:20394 次

问下php的空值问题
比如 
问题1:empty($str)与$str==''这两个句子的区别之处是
$row=$db->select('table', '*', 'id=1'); //
问题2:比如$row是取得表记录的数组,如果表记录为空的话,这个时候怎么判断数组$row是否为空呢?
问题3:如果$row有一条记录的话,其中有个字段aa为空null,那要通什么判断$row['aa']是否为null呢?

------解决方案--------------------
1  empty($str) 判断$str为空,$str=='' 判断$str等于空字符串
2  is_array() 判断是否为数组可以不?,可以var_dump($row);看看各种情况。
3  empty($row['aa'])
------解决方案--------------------
$a=Null;
echo(empty($a));
echo($a=='');
echo($a==='');
var_dump($a);
$a='0';
echo(empty($a));
echo($a=='');
echo($a==='');
var_dump($a);

------解决方案--------------------
问题1:empty($str)与$str==''这两个句子的区别之处是
判断的范围不同
比如 $str = '0'
empty($str) 为 true
$str=='' 为 false

问题2:$row=$db->select('table', '*', 'id=1'); //
比如$row是取得表记录的数组,如果表记录为空的话,这个时候怎么判断数组$row是否为空呢?
一般写作 if(! $row)

问题3:如果$row有一条记录的话,其中有个字段aa为空null,那要通什么判断$row['aa']是否为null呢?
当字段值为 null 时,只有 PDO 可指定设置为 NULL,其他数据库函数都只能返回空串""
如果不是从数据库读出的,可以用 is_null 函数判断