Melvin Cowznofski: Die php Kontrollstruktur switch()

Beitrag lesen

Hallo,

im php Manual steht bei der Kontrollstruktur switch():

"Erst wenn eine case Anweisung gefunden wird die dem Wert des an switch übergebenen Ausdrucks entspricht beginnt PHP tatsächlich die folgenden Anweisungen auszuführen." [...]

Dann verstehe ich nicht, wieso folgender Code zur Ausgabe von "foo" führt:

<?php  
  $var = 0;  
  switch($var)  
    {  
      case 'foo': $ausgabe = 'foo'; break;  
      case 'bar': $ausgabe = 'bar';  
    }  
  if(isset($ausgabe))  
    {  
      echo $ausgabe;  
    }  
?>

Weder der erste, noch der zweite Fall trifft zu. Deshalb würde ich hier erwarten, dass die if-Bedingung nicht greift, weil $ausgabe nicht existiert.

Kann mir bitte wer erklären, wieso dem nicht so ist? Wieso existiert $ausgabe und wieso mit dem Wert 'foo', obwohl keiner der beiden switch-Fälle zutrifft?

Mit lieben Grüßen

Melvin Cowznofski

--

Melvin Cowznofski
What – me worry?