2011-05-04 146 views
1

我是编程和PHP领域的新手,想知道如何在循环时使用return。例如,我想返回/显示1-10但不使用回声。PHP返回循环结果

$start = 1; 
$end = 11; 

for($start; $start < $end; $start=$start+1) { 

echo $start; //how can I use return? 

} 
+0

你为什么想回到什么?去哪里? – Dogbert 2011-05-04 23:16:36

+1

更有趣:你想从哪里收回什么?我没有看到任何功能。如果你想展示一些东西,'echo'是什么问题? – KingCrunch 2011-05-04 23:17:11

+0

@ Dogbert/KingCrunch - 我想返回的原因是因为我希望将结果返回到另一个函数 – PeanutsMonkey 2011-05-04 23:46:28

回答

8

好,return将退出功能,所以如果你把return在一个循环,循环只会做一次迭代(直到return语句)。

您可以收集在array所有值和返回数组:

function myFunction() { 
    $start = 1; 
    $end = 11; 
    $values = array(); 

    for($start; $start < $end; $start=$start+1) { 
     $values[] = $start; 
    } 

    return $values; 
} 

这就是说,一个功能产生连续的数字已经存在:range()

+0

谢谢。我问的原因是如果我想将一个函数的值返回到另一个函数的值。非常有帮助的答案。没想到我们可以将这些值输入到数组中。 – PeanutsMonkey 2011-05-04 23:47:41

2

return用于将函数调用的结果发送回调用它的函数或脚本。将参数传递给函数是相反的。

你正在做的是在同一范围内循环变量,因此不需要return。打印通过echoprint完成。但是,您可以选择在该循环中创建一个值,并在循环完成后打印该值。

此外,如果您处于循环状态,并且您想立即停止该循环,请使用break;如果你想跳过迭代并转到下一个,使用continue

这是some additional reading


关于continue的更多说明。说,无论出于何种原因,我们不想做任何事情的时候$i6

$start = 1; 
$end = 11; 

for ($i = $start; $i < $end; $i++) 
// changed this to iterate over $i for readability/clarity 
{ 
    if ($start == 6) 
    { 
     // essentially, continue just skips this iteration of 
     // the loop, goes back to the top, iterates $i based on 
     // that third parameter in the for() declaration, and 
     // continues on. 

     continue; 
    } 


    echo $start; //how can I use return? 
} 

// output: 1234578910 
+0

谢谢。不知道“继续”。我将如何在我的代码示例中使用它? – PeanutsMonkey 2011-05-04 23:49:05

+1

添加了一些代码给我的答案,希望它有帮助! – 2011-05-04 23:55:55

+0

非常有帮助。谢谢。 – PeanutsMonkey 2011-05-04 23:58:54

1

只使用

function foobar() 
{ 
    $output = ''; 
    for ($i = 1 ; $i <= 10 ; $i++) 
    { 
     $output .= $i; 
    } 
    return $output 
} 

echo foobar(); 
+0

谢谢。很简单的解决方案我喜欢。很有帮助。 – PeanutsMonkey 2011-05-04 23:51:52

0

回归将结束这个函数,你目前在你的情况。鉴于我们使用返回函数不是一个好方案。

下面的示例将执行与您的代码相同的操作,但使用函数以及for循环。希望这回答你的问题。

$start = 11; 
$end = 20; 

for($start; $start <= $end; $start++){ 
    echo calculateValue($start); 
} 

function calculateValue($value){ 
    return $value - 10; 
} 
+0

谢谢。对不起,没有给出一个很好的方案。我想了解如何将函数的值返回到另一个函数的值。 – PeanutsMonkey 2011-05-04 23:50:53

0

您可以通过定义你想要一个变量来return内外循环与.=实现它。

这里是一个工作示例:

function my_function() { 

// I am the variable to be return-ed 
$k = "My World<br/>"; 

for ($z=1; $z<=3; $z++) { 
$v = 'Here'.$z; 

// I am the same variable but I am going inside the loop 
$k .= $v . "<br/>"; 
} 

//I am not always important to be here! 
$k .= "Is Awesome"; 

// This is the show time.. 
return $k; 

} 

my_function(); 

输出:

My World 
Here1 
Here2 
Here3 
Is Awesome 
0
function loop_kec($ar_kec) { 
     $total_data = count($ar_kec) - 1; 
     //$return_kec = array(); 
     for ($e = 0; $e < $total_data; $e++) { 
      $return_kec .= 'kecamatan = ' . "'$ar_kec[$e]'" . ' or '; 
     } 
     $return_kec .= 'kecamatan = ' . "'$ar_kec[$total_data]'"; 
     return $return_kec; 
    }