【发布时间】:2015-11-08 15:36:58
【问题描述】:
我的一个 Web 服务正在响应八进制 (010) 中的值,我想将此值用作数组中的键。
$key = 010;
$a[$key] = 'test';
print_r($a);
结果:
Array
(
[8] => test
)
预期:
Array
(
[010] => test
)
即使我进行类型转换,PHP 也将 010 值转换为 9,我尝试了 (string) $key 和 sprintf('%s', $key) 但没有运气。
我们是否必须将八进制转换为字符串而不更改值?
【问题讨论】:
-
您可以编写一个函数,将原始八进制数保留为保持格式的文字字符串。 Octal - From Wikipedia 有一些关于如何表示八进制文字的有用信息。使用小写的“o”作为前缀会很容易阅读,并且很明显它是一个八进制数。并且很容易转换回八进制数,当用作字符串键时,PHP 将不理会它。