php要当心的坑主要有php
php90%的坑都在弱类型,1是弱类型相关的转换规则,你得记住,2最麻烦的,在很是普遍的范围,都能进行类型按需转换,是你得识别出可能自动转换的地方,防止出bug,得时刻提防html
主要有这么几点要掌握bash
if('11' == 1.0)
好比这个松散比较背后的转换规则 ,你知道是吧str转换成float仍是把float转换成str?这个须要知道isset empty is_null
的处理结果,和松散比较表在函数的参数 或者运算须要某个类型的变量时,若是给的不是,那就会自动转换,要是不能转,那就,报错函数
看我总结的图 ui
记住三条解决12个状况spa
剩下3个.net
看我总结的图 3d
用的比较多的状况是 其余往str和bool转,这俩尤为要搞清楚code
PHP 类型比较表cdn
这个相对简单,就是你要知道浮点计算会出问题,而后大概缘由是什么?怎么解决?
上代码
<?php
echo floor((0.7+0.1)*10); //7
echo PHP_EOL;
echo intval(0.58*100); //57
echo PHP_EOL;
echo ((0.7+0.1)== 0.8)?'相等':'不相等';//不相等
echo PHP_EOL;
echo (1.23456789123456789==1.23456789123456780)?'相等':'不相等';//相等
echo PHP_EOL;
echo '---use bc-----';
echo (bcadd(0.7,0.1,1)== 0.8)?'相等':'不相等';//相等
复制代码
由于数字在内部是二进制 具体看这个 PHP浮点数的一个常见问题的解答
先看这个 我晚点补齐 php中引用&的真正理解-变量引用、函数引用、对象引用
先看一个经典的题目
<?php
$arr = [1,2,3];
foreach($arr as &$v){
echo $v.',';
}
echo PHP_EOL;
foreach($arr as $v){
echo $v.',';
}
复制代码
结果输出
1,2,3,
1,2,2,
复制代码
为啥?这篇图文并茂解答PHP foreach引用&
php中,对象都是引用传值,