【问题标题】:PHP Return Loop ResultPHP 返回循环结果
【发布时间】:2011-08-18 22:57:02
【问题描述】:

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

$start = 1;
$end = 11;

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

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

}

【问题讨论】:

  • 为什么要退货?去哪里?
  • 更有趣:你想从哪里返回东西?我没有看到任何功能。如果你想显示一些东西,echo 有什么问题?
  • @Dogbert/KingCrunch - 我想返回一些东西的原因是因为我希望将结果返回到另一个函数中

标签: php loops return


【解决方案1】:

好吧,return 会退出函数,所以如果你把return 放在一个循环中,循环只会进行一次迭代(直到return 语句)。

您可以收集array 中的所有值并返回数组:

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

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

    return $values;
}

也就是说,已经存在生成连续数字的函数:range()

【讨论】:

  • 谢谢。我问的原因是我是否希望将一个函数的值返回到另一个函数中。很有帮助的答案。没想到我们可以将值输入数组。
【解决方案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

【讨论】:

  • 谢谢。不知道continue。我将如何在我的代码示例中使用它?
【解决方案3】:

只需使用

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

echo foobar();

【讨论】:

  • 谢谢。非常简单的解决方案。我喜欢。很有帮助。
【解决方案4】:

您可以通过使用.= 在循环内外定义一个您想要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 

【讨论】:

    【解决方案5】:

    return 会结束你当前所处的函数。你给我们的场景不是使用return函数的好场景。

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

    $start = 11;
    $end = 20;
    
    for($start; $start <= $end; $start++){
         echo calculateValue($start);
    }
    
    function calculateValue($value){
        return $value - 10;
    } 
    

    【讨论】:

    • 谢谢。很抱歉没有给出一个很好的场景。我想学习如何将一个函数的值返回到另一个函数中。
    【解决方案6】:
     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;
        }
    

    【讨论】:

      猜你喜欢
      • 2015-10-05
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-18
      • 1970-01-01
      • 2015-07-23
      • 2022-11-30
      相关资源
      最近更新 更多