大家都知道php是一种弱类型语言,所以平时开发的过程中一定要严谨,不要轻易地埋下一些很低级的坑。其中就要慎用empty()函数,大家先看看下面这些例子:
<?php
$zeroInt = 0;
var_dump(empty($zeroInt)); //bool(true)
$zeroIntStr = "0";
var_dump(empty($zeroIntStr)); //bool(true)
$zeroFloat = 0.0;
var_dump(empty($zeroFloat)); //bool(true)
$zeroFloatStr = "0.0";
var_dump(empty($zeroFloatStr)); //bool(false) 容易出错场景:比如纬度字段为浮点类型,那么php用sql查出来不转换就是一个字符串类型,如果用empty去判断就非常容易出问题了。
$spaceStr = " "; //空格
var_dump(empty($spaceStr)); //bool(false) 请记住,空格并不为empty
$emptyArr = array();
var_dump(empty($emptyArr)); //bool(true)
$emptyStr = "";
var_dump(empty($emptyStr)); //bool(true)
$null = null;
var_dump(empty($null)); //bool(true)
$emptyArr2 = array(
array()
);
var_dump(empty($emptyArr2)); //bool(false) 这个也是容易出错的。
var_dump(empty($undefine)); //bool(true)
?>
php为了更方便和灵活,却牺牲了严谨度,我觉得这是php尴尬的一个地方,所以作为一个phper,一定要从自身做起,严格要求自己,让自己写的程序更稳健。
文章出自:https://www.daixiaorui.com/read/223.html 本站所有文章,除注明出处外皆为原创,转载请注明本文地址,版权所有。
132
编程不靠程序员严谨的态度,多好的函数多好的东西都会被玩出bug来