|
php是弱类型语言, 比如 变量$v的值为: 0 , false , null , '' ,"" ,未定义
if(!$v) echo "true";
都会输出true, 所以这些条件都为假, 这在其他一些语言中是不能容忍的。
于是我们在日常开发中也慢慢的习惯了这种弱类型。
以至于我们在判断字符串相等时,也会直接忽略了0的存在直接比较, 比如:
$v = array(0=>"a", "type"=>"b",1=>"c");
$useArr = array();
foreache($v as $key=>$value){
if($key == 'type'){ continue;}
$useArr[] = $value;
}
我们本来只想过滤掉键值为type的数据, 但结果不小心会使键值为0的数据也过滤掉了。
原因是0键值为整形,而与字符串比较时,会先将字符转化为整形,没有数字开头的字符串一般都是转化为0,因此这里需要用 === 来替代,这样才万无一失。
小心小心,切记切记, :)
如果是强类型语言在编译时就会提示错误, 不能直接比较。
解释型与编译型,弱类型与强类型, 各有千秋啊。 |
|
|