PHP Return Loop Result - PullRequest
       13

PHP Return Loop Result

1 голос
/ 05 мая 2011

Я новичок в мире кодирования, а также PHP, и мне интересно, как я могу использовать return при зацикливании. Например, я хотел бы вернуть / отобразить 1-10, но не использовать эхо.

$start = 1;
$end = 11;

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

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

}

Ответы [ 6 ]

10 голосов
/ 05 мая 2011

Ну, return выйдет из функции, поэтому, если вы поместите return в цикл, цикл будет выполнять только одну итерацию (до оператора return).

Вы можете собрать все значения в массиве и вернуть массив:

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

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

    return $values;
}

Тем не менее, функция, генерирующая последовательные числа, уже существует: range().

2 голосов
/ 05 мая 2011

return - для отправки результатов обратного вызова функции или скрипту, который ее вызвал.Это противоположность передачи параметров в функцию.

То, что вы делаете, циклически перебирает переменную в той же области видимости, поэтому return не требуется.Печать осуществляется через echo или print.Однако вы можете создать значение в этом цикле и напечатать его после завершения цикла.

Кроме того, если вы находитесь в цикле и хотите немедленно остановить этот цикл, используйте break;и если вы хотите пропустить итерацию, на которой вы находитесь, и перейти к следующей, используйте continue.

Вот дополнительное чтение .


Больше разъяснений по continue.Скажем, по какой-то причине мы не хотим ничего делать, когда $i равен 6:

$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
1 голос
/ 03 сентября 2013

Этого можно добиться, определив переменную, которую вы хотите 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 
1 голос
/ 05 мая 2011

просто используйте

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

echo foobar();
0 голосов
/ 23 мая 2014
 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;
    }
0 голосов
/ 05 мая 2011

Возврат завершит функцию, в которой вы находитесь в данный момент. Сценарий, который вы нам дали, не является хорошим сценарием для использования функции возврата.

Пример ниже будет делать то же самое, что и ваш код, но использует функцию так же, как и ваш цикл for. Надеюсь, что это отвечает на ваш вопрос.

$start = 11;
$end = 20;

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

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