Pytanie jaka jest różnica między dla pętli i dla każdej pętli w php


Jakie są różnice między for pętla i foreach pętla w PHP?


11
2018-04-07 07:53


pochodzenie


(odniesienie)  de2.php.net/manual/en/control-structures.for.php i de2.php.net/manual/en/control-structures.foreach.php - Gordon
Proponuję zapoznać się z dokumentacją obu typów pętli. Istnieją pewne zasadnicze różnice. Czy masz konkretny problem? Jeśli tak, wyjaśnij w swoim pytaniu. - rael_kid


Odpowiedzi:


Foreach świetnie nadaje się do iteracji poprzez tablice, które używają kluczy i wartości.

Na przykład, jeśli mam tablicę o nazwie "Użytkownik":

$User = array(
    'name' => 'Bob',
    'email' => 'bob@example.com',
    'age' => 200
);

Mógłbym bardzo łatwo iterować i nadal korzystać z kluczy:

foreach ($User as $key => $value) {
    echo $key.' is '.$value.'<br />';
}

Zostanie wydrukowane:

name is Bob
email is bob@example.com
age is 200

Z for pętli, trudniej jest zachować użycie kluczy.

Kiedy używasz zorientowanej obiektowo praktyki w PHP, przekonasz się, że będziesz używał foreach prawie całkowicie, z for pętle tylko dla rzeczy numerycznych lub listowych. foreach również uniemożliwia korzystanie z niego count($array) aby znaleźć całkowitą liczbę elementów w tablicy.


14
2018-04-07 07:58





foreach jest specjalnie do iterowania nad elementami tablicy lub obiektu.

for jest do zrobienia czegoś ... czegokolwiek ..., który ma określony warunek początkowy, warunek zatrzymania i instrukcje iteracji.

Więc, for może być stosowany do znacznie szerszego zakresu rzeczy. W rzeczywistości bez trzeciego wyrażenia - bez instrukcji iteracji - a for staje się while.

Przykłady:

// Typical use of foreach
// It's strength is iterating over arrays & objects
$people = array("Tom", "Dick", "Hairy");

foreach ($people as $person) {
    echo "$person <br/>"; }

Przykład roboczy

Teraz możesz zrobić dokładnie to samo for, ale po co zawracać sobie głowę? Zamiast for może być używany do zupełnie innych rzeczy:

// Prints random names from array until Hairy is picked
for ($people = array("Tom", "Dick", "Hairy"); // initial condition
     $people[0] != "Hairy";                   // stop condition
     shuffle($people)                         // iteration instructions
    ) {
    echo "$people[0] <br/>";
}

Przykład roboczy

Warunek początkowy jest wykonywany przed for zapętlaj raz, bez względu na wszystko. Jeśli warunek zatrzymania zostanie oceniony na false pętla zostanie natychmiast zatrzymana. Instrukcje zmiany są wykonywane na końcu każdej pętli. Zauważ, że instrukcje zmiany nie muszą być przyrostowe.

Oto przykład obracania for zapętlić się do while pętli, pomijając instrukcje dotyczące iteracji.

// Does the loop a random number of times.
// No thired expression
for ($rand = function() {$array = array(true, true, true, true, false);
         shuffle($array);
         return $array;
        };                   
     current($rand()); 
     // empty third expression
 ) {  

    echo "I bring nothing to the table.<br/>";
}

Przykład roboczy


3
2017-08-08 02:30





Pętla "for" daje liczbę inkrementującą (w najczęstszym użyciu), której możesz użyć w dowolny sposób.

"foreach" to specjalna konstrukcja stworzona do przeglądania kolejnych elementów tablicy.

Jako przykład możesz użyć pętli "for", aby stworzyć coś, co robi to, co robi "foreach". Ale foreach robi to z mniej wymaganym kodem.


1
2018-04-07 08:00



for podaje tylko liczbę zwiększającą, jeśli ją zdefiniowałeś. Używane wyrażenia w for są arbitralne. - Gordon


Powinno być całkiem proste

foreach usuwa niektóre złożoności i zwykle jest łatwiejsze. Używam tego, gdy nie potrzebuję znać numerycznego indeksu tablicy lub $key => $value nie dostarczy mi tego.

for jest starszym stylem C, w którym musisz najpierw wykonać count() więc wiesz, ile iteracji wymaga pętla. Jest to przydatne, gdy trzeba znać indeks lub liczyć wstecz lub krok w różnych grupach.


1
2018-04-07 07:57



expr2 w for może być to, co uważasz za warunek końcowy. To nie musi być count(). Na przykład z Iteratorem możesz zrobić for($it->rewind(); $it->valid(); $it->next()) { /* ... */}, ale może to być również wywołanie zwrotne, zapytanie db, cokolwiek. - Gordon
@Gordon: Już miałem powiedzieć coś podobnego. Wszyscy tutaj wydają się tak sądzić for pętle mogą być używane tylko z liczbami ... - Felix Kling
@Felix @Gordon Cóż, próbowałem uczynić go prostym przykładem na przechodzenie przez tablicę. Ale dzięki za twój wkład. - alex


Foreach jest w zasadzie skrótem do robienia następujących rzeczy

//Foreach method
foreach ($myArray as $myVar)
{
}

//Normal for equivalent
for ($i = 0; $i < $limit; $i++)
{
$myVar = $myArray[$i];
}

Ale są też inne problemy, Przeczytaj to artykuł na ten temat


0
2018-04-07 07:57





foreach używane do iterowania tablic i nic więcej.
for jest pętlą opartą na licznikach ogólnego przeznaczenia


0
2018-04-07 07:59



Począwszy od PHP 5, możliwe jest również iterowanie obiektów. - Gordon


Lepszą i prostszą odpowiedzią jest:       Różnica między Foreach i For Loop: -

  1. Foreach Loop:- Details are following.
    a) Foreach loop used when you have an array, without array it's not worked.
    b) Loop working at the end of array count. For example an array have 5 value 
     then   loop run 5 times.
    c) Syntax is following.
      $array = array("Surinder","Rahul","Manoj","Bharti","Rana","Manish");     
      Foreach($array as $name ){
         echo "Employe Name is ".$name.".";
      }
   This will print as following.
     Employe Name is Surinder.
     Employe Name is Rahul. 
     Employe Name is Manoj.
     Employe Name is Bharti.
     Employe Name is Rana.
     Employe Name is Manish.



 2. For Loop:- Details are following.
    a) For loop used according to condition.
    b) Loop working at the end of given condition.
    c) Syntax is following.
       $array = array("Surinder","Rahul","Manoj","Bharti","Rana","Manish");
       For($i=0;$i<6;$i++){
          echo "Employe Name is ".$array[$i].";
       }
    At the place of 6,You can used count array function.
    This will print as following.
    Employe Name is Surinder.
    Employe Name is Rahul.
    Employe Name is Manoj.
    Employe Name is Bharti.
    Employe Name is Rana.
    Employe Name is Manish.
    These are the difference between Foreach and for loop. 

Aby uzyskać więcej informacji, idź tam:http://ibmphp.blogspot.com/2012/10/difference-between-foreach-and-for-loop.html


0
2018-03-31 04:19





dla Pętla jest używana, jeśli wiemy już, ile razy skrypt powinien być uruchamiany, ale w przypadku dla każdego w pętli, nie mamy pojęcia o liczbie iteracji.

Również dla każdego Pętla służy tylko do iteracji tablice i obiekty.

Możesz przekierować link, aby lepiej zrozumieć różnicę między dla i dla każdego pętla -

https://www.quora.com/What-is-the-difference-between-for-and-foreach-inphphp


0
2017-11-30 06:33