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中,對象都是引用傳值,