2018/07/30

PHP array_keys() 會自動轉換資料型態

給定一個 array:
$list = [
    '200' => 'OK',
    '404' => 'not found',
    '500' => 'internal server error',
];

使用 array_keys() 取得 keys 以後,key 的資料型態若可以被轉為 int 則會被自動轉換:
$keys = array_keys($list);

// array(3) {
//   [0]=>
//   int(200)
//   [1]=>
//   int(404)
//   [2]=>
//   int(500)
// }

文件中可以看到,透過第三個參數「$strict」可以要求保留原始資料型態,但無法避開第二個參數「$search_value」。所以第三個參數基本上是放好看的 (WTF)

如果要處理的資料是比較敏感的,建議在 key 前面加個 prefix,或是取得 keys 以後再手動轉換資料型態。

沒有留言:

張貼留言

除非必要,請不要在回覆時留下您的敏感資訊 (電話、email、地址等)