我有这个递归函数,我必须使用一个数组来存储和验证使用过的数据,这意味着,在使用了一个字符串后我想记住它已经被使用了所以我不再重复那个字符串了在下一次迭代中。 问题是在第一次迭代之后,数组被认为是NULL。
所以我的问题是:如何在递归函数中传递数组?或者如何在递归函数中使用数组?
我在这里看了这个,虽然有很多类似的问题没有回答我的问题。
注意:我知道任何可以通过循环完成的事情都可以通过循环来完成......但是......这就是函数。就像我在第二次迭代中提到的那样,数组被认为是NULL并且我得到了这个警告:
array_push()期望参数1为数组,在......
中给出null这是函数的逻辑:
// Set Vars...
$Str = 'someData';
$S_Array = array();
// initial call...
GetData($Str, $S_Array);
function GetData ($string, $array)
{
// string manipulations code...
.
.
.
.
// Attempt to Store in array
array_push($array, $string);
foreach ($array as $val) {
// Recursive Call...
GetData($val, $array);
}
}
答案 0 :(得分:0)
您使用array_push
错误 - 切换参数的顺序。并且根本不需要使用array_push
,因为使用
$array[] = $string;