因為php是弱型別語言,常常會發生許多意想不到的問題,所以,我們再次一一細數這些我們踏過的坑!!!
1)
foreach中自動回將key為數值的轉化成整型,造成無法匹配
function translate($keyword)}
return'其他
';}echo translate(
") . php_eol;
echo translate(
'360
') . php_eol;
結果://
谷歌//
其他
修復bug:
function translate($keyword)}
return'其他
';}echo translate(
") . php_eol;
echo translate(
'360
') . php_eol;
結果://
谷歌//
360
建議: 如果確定變數的型別,一定要嚴格轉化之後 ,再進行操作
2)注意array_merge 與 + 的區別使用
$arr1 = ['a' => 1, '
b' => 2
];$arr2 = ['
b' => 3, '
d' => 4
];//
以 key 的前值為準
var_dump($arr1 +$arr2);
array (
'a' => 1,
'b' => 2,
//b 為前值的值
'd' => 4,)//
以 key 的後值為準
var_dump(array_merge($arr1, $arr2));
array (
'a' => 1,
'b' => 3,
//b 為後值的值
'd' => 4,
)$arr3 = [1, 2
];$arr4 = [3, 4, 5
];//
可以看到 + 依然會對索引陣列的 key 起作用
//即 $arr3 的 key 0 key 1 會覆蓋 $arr4 的 key 0 key 1
//所以得到的陣列只有 3 個值
var_export($arr3 +$arr4);
array (
0 => 1,
1 => 2,
2 => 5,)//
array_merge 則會忽略索引素組的下標重複的問題,完全拼接
var_export(array_merge($arr3, $arr4));
array (
0 => 1,
1 => 2,
2 => 3,
3 => 4,
4 => 5,
)
關於Kafka的那些坑
進來使用了kafka訊息佇列,喜憂參半。細數一下,踩過的坑。1 最好不要用windows伺服器去搞,當然像本人這樣被迫使用的,就硬著頭皮搞。windows伺服器搭建kafka,首先先例少。其次穩定性,個人感覺要比linux或者mac上差遠了。windows上,停止kafka後,在啟動需要刪掉log。...
關於JSF學習的那些坑
1 jsf的重定向和一般的重定向不同 首先,一般的重定向,比如springmvc不管攔截的url是什麼樣的,或者 spring 重定向的時候重定向url是什麼就在瀏覽器位址列顯示什麼,如return redirect login 則瀏覽器位址列一定顯示localhost 8080 login 然而j...
那些php中強制轉化的坑
考驗基本功的時候到了,你是否在php的道路上踩過坑,掛過彩。以下是我總結在型別強制轉化上的一些坑,希望能夠對讀者朋友有幫助。功能點 1.強制轉換成boolean布林型別 舉例說明 當變數為空時轉換成布林型別全為false 空字串 空陣列,數字0,null 2.強制轉化成interger整型 字串轉換...