這次遇到是因為使用 time 當作 array 的 key 時發現的:
$timeTable = [];
$timeTable['0800'] = '早上';
$timeTable['1200'] = '中午';
$timeTable['2000'] = '晚上';
取直時發現資料型態和 assign 時不一樣,可以被轉成數字的全部變成數字了:
array(3) {
["0800"]=>
string(6) "早上"
[1200]=>
string(6) "中午"
[2000]=>
string(6) "晚上"
}
原因是 PHP array 的預設行為,是會自動對 key 作 type casting。可被判斷成數值的 (is_numeric()) 都會自動被轉為 int。所以撰寫時要注意,如果 array 的 key 若需要避免被 casting 時,必須手動加上一些字元讓 is_numeric() 無法將其判斷為數字。
以上面的例子,可以將時間加上「:」
- 08:00
- 12:00
- 20:00
Ref:
沒有留言:
張貼留言
除非必要,請不要在回覆時留下您的敏感資訊 (電話、email、地址等)