關於PHP的那些坑

2022-05-13 03:01:32 字數 1530 閱讀 9491

因為php是弱型別語言,常常會發生許多意想不到的問題,所以,我們再次一一細數這些我們踏過的坑!!!

1)

foreach中自動回將key為數值的轉化成整型,造成無法匹配

function translate($keyword)

}

return'其他

';}echo translate(

"google

") . php_eol;

echo translate(

'360

') . php_eol;

結果://

谷歌//

其他

修復bug:

function translate($keyword)

}

return'其他

';}echo translate(

"google

") . 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整型 字串轉換...