PHP-parse_ini_file将数值转换为字符串

我使用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.

上一篇:java-使用Jackson进行反序列化时,将标量转换为字符串


下一篇:javascript-用浏览器内置JS数值求解三角函数方程