array( "SERVER" =-6ren">
gpt4 book ai didi

php - 如何在 PHP 中以最佳方式构造递归函数的函数参数?

转载 作者:行者123 更新时间:2023-12-04 06:33:34 25 4
gpt4 key购买 nike

我没有太多的 PHP 经验,我想知道如何最好地在 PHP 中创建递归函数。拿这个例子

$config = array(
"MYSQL" => array(
"SERVER" => "localhost",
"USERNAME" => "root",
"PASSWORD" => ""
),
"FOO" => "bar"
);

// Make the config global
config_parse(false, $config);

function config_parse($index, $value)
{
if(is_array($value))
{
foreach($value as $i => $e)
{
config_parse(($index ? $index . "_" : "") . $i, $e);
}
}
else
{
define($index, $value);
}
}

它完成了我想要它做的事情,但是当我以这种方式初始化递归函数时,我觉得我在“入侵”/编写错误的代码(将 false 作为初始索引传递并在函数中检查它)

解决此问题的一种方法可能是颠倒输入参数的顺序,这意味着当数组作为值传递时不会访问索引值。

另一种方法是将递归函数拆分为初始化函数和回调函数。

我想知道什么是“最佳实践”,最好是基于我的例子。

谢谢回复

最佳答案

对我来说,这取决于递归的复杂性。在您给出的具体示例中,我只会翻转参数并将第二个默认设置为 null (在这种情况下,我更喜欢 null 而不是 false )。

function config_parse($value, $index = null)
{
// your logic - id detect null with if(null === $index)
}

关于php - 如何在 PHP 中以最佳方式构造递归函数的函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com