我使用php命令parse_ini_file加载应用程序的配置.
看一下PHP documentation,有一个例子,在这里看起来像是使用不带引号的数字来排除数字值.
所以我使用了这样的初始化文件:
arr[] = 1
arr[] = 2
arr[] = "string"
integer_value = 3
用解析该文件
$init = parse_ini_file(‘myConfig.ini’,0);
我得到以下结果(var_dump($init);):
array(2) {
["arr"]=>
array(3) {
[0]=>
string(1) "1"
[1]=>
string(1) "2"
[2]=>
string(6) "string"
}
["integer_value"]=>
string(1) "3"
}
有没有一种方法可以将整数值处理为整数而不是字符串,以获得以下结果:
array(2) {
["arr"]=>
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
string(6) "string"
}
["integer_value"]=>
int(3)
}
解决方法:
文档没有说明有关返回相应类型的选项值的任何内容.实际上,在通常情况下,它们应该是字符串. (但是,如果需要,可以选中此implementation).相反,您可以应用简单的回调,例如通过array_walk_recursive()
:
$array = ["arr"=>["0", "1", "2"], "integer_value"=>"3", "float_value"=>"-0.5"];
array_walk_recursive($array, function(&$value, $key)
{
if(is_numeric($value))
{
$value = (string)((int)$value)===$value
?(int)$value
:(double)$value;
}
});
-检查此fiddle.