php循环函数并将结果返回到原始调用
我很难弄明白这一点,有什么帮助吗 我正在将一些数据传递到循环函数中,并希望将结果返回到原始调用 这只有在第一个循环中找到结果时才有效,如果函数再次调用自身,则不会返回任何结果。不过,如果我重复结果,我会发现我有一个匹配项php循环函数并将结果返回到原始调用,php,function,loops,return,Php,Function,Loops,Return,我很难弄明白这一点,有什么帮助吗 我正在将一些数据传递到循环函数中,并希望将结果返回到原始调用 这只有在第一个循环中找到结果时才有效,如果函数再次调用自身,则不会返回任何结果。不过,如果我重复结果,我会发现我有一个匹配项 function fetchAllOffers () { /* do a bunch of things */ $result = currentOffer($campaign, $campaignsArray); // <-- return resu
function fetchAllOffers () {
/* do a bunch of things */
$result = currentOffer($campaign, $campaignsArray); // <-- return result
if ($result) {
/* do more */
}
}
function currentOffer ($step, $campaigns) {
foreach ($campaigns as $c) {
if (/* an exact match is found */) {
return $c['id'];
}
elseif (/* half match move to next step */) {
currentOffer($c, $campaigns);
}
}
return $c['final']; // if no match found return
}
fetchAllOffers();
function-fetchAllOffers(){
/*做一大堆事情*/
$result=currentOffer($campaign,$campaignsArray);//您必须在函数中返回currentOffer()
的结果
function currentOffer ($step, $campaigns)
{
foreach ($campaigns as $c)
{
if (/* a match is found */)
return $c['id'];
else
return currentOffer($c, $campaigns);
}
}
您需要返回currentOffer
。此外,您的循环在currentOffer
中基本上是无用的,因为您反复调用currentOffer
,直到它返回一个值。您所做的就是所谓的递归
function currentOffer ($step, $campaigns) {
//foreach ($campaigns as $c) {
if (/* a match is found */) {
return $c['id'];
}
else {
$nextc = <something> // get the campaign following c here
return currentOffer($nextc, $campaigns);
}
//}
}
function currentOffer($step,$campetings){
//foreach($c){
如果(/*找到匹配项*/){
返回$c['id'];
}
否则{
$nextc=//在此处获取c之后的活动
return currentOffer($nextc,$campetings);
}
//}
}
另外,当再次致电currentOffer
时,你应该在下一次活动中通过,不管你得到的是什么。天才!!谢谢你,先生。我无法在那漫长的一个夜晚保持清醒。请看我的编辑,但谢谢你我一直在寻找回报