2011-05-04 145 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; 
    }