break

Aus php bar

Wechseln zu: Navigation, Suche

Das Schlüsselwort break dient zum Abbrechen von Schleifen und Switch-Anweisungen.

Inhaltsverzeichnis

Break auf einer Ebene

1 $tiere = array ('Hase', 'Katze', 'Pferd', 'Fisch');
2 
3 foreach ($tiere as $key => $tier) {
4   if ($tier == 'Katze')
5     break;
6 }
7 
8 echo "[$key] => 'Katze'"; // Ausgabe: [1] => 'Katze'
9 


In diesem Fall wird die foreach-Schleife so oft durchlaufen, bis das aktuelle Arrayelement gleich Katze ist. Ist das der Fall, wird die Schleife durch das break abgebrochen und der nachstehende Code wird ausgeführt.

Break auf mehreren Ebenen

Mit break können auch mehrere ineinander verschachtelte Schleifen gleichzeitig abgebrochen werden.

 $personal = array (
                    'Mueller' => array ('C', 'C#', 'C++'),
                    'Meier'   => array ('PHP', 'MySQL', 'HTML'),
                    'Schmidt' => array ('Perl', 'Python'),
                    'Becker'  => array ('Visual Basic', 'Delphi', 'Pascal')
                   );
 
 foreach ($personal as $name => $sprachen) {
   foreach ($sprachen as $sprache) {
10     if ($sprache == 'PHP')
11       break 2;
12   }
13 }
14 
15 echo "Wenn Sie einen PHP-Programmierer brauchen, rufen Sie $name!";


Das obige Beispiel simuliert das Durchsuchen einer Personaldatenbank nach einer bestimmen Programmiersprache und liefert den Angestellten, der diese Sprache beherrscht (natürlich würde man das in echt nicht wie oben dargestellt umsetzen, aber als Beispiel soll es uns genügen). Die erste foreach-Schleife geht die einzelnen Mitarbeiter durch, die zweite deren Sprachen. Wurde die gesuchte Sprache gefunden (hier: PHP), werden beide Schleifen abgebrochen (break 2, wobei die Zahl nach break optional ist und die Anzahl der zu beendenden Schleifen angibt).

Break in Switches

Wie bereits erwähnt kann break auch in switch-Anweisungen verwendet werden.

 $seite = $_GET['seite'];
 
 switch ($seite) {
   case 'home':
     require_once ('home.php');
     break;
   case 'news':
     require_once ('news.php');
     break;
10   case 'forum':
11     require_once ('forum.php');
12     break;
13   default: // Seite nicht gefunden
14     require_once ('fehler.php');
15 }


Würde man im obigen Beispiel die einzelnen case-Anweisungen nicht mit einem break abschließen, würde die switch-Anweisung bis zum default weiterlaufen und dessen Code ebenfalls ausführen, da der Fall default bei jedem beliebigen Wert ausgelöst wird. Somit würden sowohl z.B. die news.php, als auch die fehler.php inkludiert. Dies wird durch das Abbrechen der Anweisung mittels break in den einzelnen Fällen verhindert.

Weitere Informationen

http://de2.php.net/break

Persönliche Werkzeuge