在int32(64位机器则为int64)的范围内的证书作为数组索引来存储数据的话,
在php中,会自动将这种可以转换成int的字符串转换成int作为索引使用。

以下面这一段脚本的输出来说明这个问题:

<?php
$arr = array(
        123 => 'a',
        '123' => 'b',
        0123 => 'c',
        '0123' => 'd',
        );
var_dump($arr);
?>
输出:
array(3) {
  [123]=>
  string(1) "b" //第一个123的a消失了,却出来了一个b,说明"123"在索引中被当作int处理了,并覆盖了之前123索引对应的值
  [83]=>  //0123是八进制的83
  string(1) "c"
  ["0123"]=> //字符串
  string(1) "d"
}




欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php