我有一个例子,只是为了表明我不知道该怎么做。当你调用该函数时,它返回1个水果,或者如果它滚动5,那么我希望水果为每个结果递增1次,它会滚动并返回一个数组,可能会进入最大递归,如20,说得通! :)
function fruitBasket(&$fruit = array()) {
$dice = rand(1, 5);
switch($dice) {
case 1:
$fruit['watermelon'] = ++$watermelon;
break;
case 2:
$fruit['orange'] = ++$orange;
break;
// etc...
case 5:
for($i = 1; $i <= rand(1, 5); $i++) {
fruitBasket($fruit);
}
break;
}
return $fruit;
}
答案 0 :(得分:0)
我不确定我完全理解你的问题,因为你的描述有点令人困惑,我无法添加评论,但是从我的理解中可以看出:
function fruitBasket(&$fruit = array(), $dice = 0, $depth = 1) {
if($depth == 20)
return $fruit;
$dice = ($dice > 0 ? $dice : rand(1, 5));
switch($dice) {
case 1:
$fruit['watermelon'] += 1;
break;
case 2:
$fruit['orange'] += 1;
break;
// etc...
case 5:
$depth += 1;
for($i = 1; $i <= rand(1, 5); $i++) {
fruitBasket($fruit, $i, $depth);
}
break;
}
return $fruit;
}