编辑:我对我的问题做了一个演示:http: //codepad.org/ByNdAdCI
我们使用以下逻辑在 32 位 php 中设置我们的数组:
private function formatAvailableOptions($availableOptions) {
$optionsAsArray = array();
foreach($availableOptions as $option){
$optionsAsArray[$option["entity_id"]] = $option["name"];
}
return $optionsAsArray;
}
问题:
$option["entity_id"]
已经变得太大而无法适应 32 位 int,因此在创建时会$optionsAsArray
溢出。例如$optionsAsArray[2147483648] = "嗨";
变成
$optionsAsArray[-2147483648] = "hi";
我需要索引为 2147483648,因为它与数据库中的 id 相关联
此代码已交付给客户端,并且该逻辑在许多地方都使用,因此无法修改每个实例以
$optionsAsArray[strVal(2147483648)] = "hi";
通过使用字符串类型作为关联数组的键使其正常运行。
在这种情况下,最好的解决方案是什么?是否有一个全局配置选项让我强制所有 php 数组使用字符串作为键来解决这个问题?