Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

de:create:filter-elseif [26.11.2011 08:38]
admin angelegt
de:create:filter-elseif [11.11.2014 23:21] (aktuell)
admin Aktualisierung
Zeile 38: Zeile 38:
 </code> </code>
  
-Solche verschachtelten Konstruktionen können sinnvoll sein -- aber im vorliegenden Fall funktioniert es auch übersichtlicher. Folgende Konstruktion liefert genau dasselbe Ergebnis. Auch sie könnte beliebig fortgesetzt werden.+Solche verschachtelten Konstruktionen können sinnvoll sein -- aber im vorliegenden Fall funktioniert es auch übersichtlicher.
  
 ===== IF und ELSE fortsetzen ===== ===== IF und ELSE fortsetzen =====
 +
 +Folgende Konstruktion liefert genau dasselbe Ergebnis wie das vorhergehende Beispiel. Auch sie könnte beliebig fortgesetzt werden.
  
 <code php> <code php>
Zeile 55: Zeile 57:
 </code> </code>
  
-In PHP gibt es zur einfacheren Schreibweise den Befehl ''elseif''. Die Anweisung nach diesem Befehl wird dann ausgeführt, wenn die Bedingung nach elseif erfüllt ist, aber keine vorhergehende. Praktisch ist ''elseif'' nichts anderes als das ''else if'' im obigen Beispiel 
  
-===== ELSEIF = ELSE + IF =====+===== ELSE + IF = ELSEIF ===== 
 + 
 +In PHP gibt es zur einfacheren Schreibweise den Befehl ''elseif''. Die Anweisung nach diesem Befehl wird dann ausgeführt, wenn die Bedingung nach ''elseif'' erfüllt ist, aber keine vorhergehende. Praktisch ist ''elseif'' nichts anderes als das ''else if'' im obigen Beispiel.
  
 <code php> <code php>
Zeile 72: Zeile 75:
 </code> </code>
  
-Man kann den Wert von TF03 auch vorab in eine Variable ([[variables#php-variablen|PHP-Variablen]]) speichern - dadurch wird es nochmals übersichtlicher:+Man kann den Wert von TF03 auch vorab in eine Variable ([[variables#php-variablen|PHP-Variablen]]) speichern. Dadurch wird es nochmals übersichtlicher:
  
 <code php> <code php>
 // Wert in Variable speichern // Wert in Variable speichern
-$wert = value('TF03'); +$cn = value('TF03'); 
-if ($wert == 1) {        // Analog oder ISDN?+if ($cn == 1) {        // Analog oder ISDN?
   question('IN15');      // Frage nach Tarif   question('IN15');      // Frage nach Tarif
-} elseif ($wert == 2) {  // DSL-Anschluss?+} elseif ($cn == 2) {  // DSL-Anschluss?
   question('IN16');      // Frage zum DSL-Anschluss   question('IN16');      // Frage zum DSL-Anschluss
 } else {                 // Keines der vorigen? } else {                 // Keines der vorigen?
Zeile 85: Zeile 88:
 } }
 </code> </code>
 +
  
 ===== SWITCH ===== ===== SWITCH =====
  
-Falls wie im Beispiel nur verschiedene Ausprägungen einer Variable abgefragt werden sollen, ist es natürlich etwas umständlich, jedes mal das ''value('TF03')'' anzuschreiben. Statt dessen gibt es in PHP die ''switch''-Konstruktion.+Falls wie im Beispiel nur verschiedene Ausprägungen einer Variable abgefragt werden sollen, ist es natürlich etwas umständlich, jedes mal das ''value('TF03')'' anzuschreiben. Stattdessen gibt es in PHP die ''switch''-Konstruktion.
  
 Dabei gibt man hinter dem ''switch'' in Klammern an, welcher Wert überprüft werden soll. Hinter jeweils einem ''case'' stehen dann die verschiedenen Möglichkeiten, gefolgt von einem Doppelpunkt. Dabei gibt man hinter dem ''switch'' in Klammern an, welcher Wert überprüft werden soll. Hinter jeweils einem ''case'' stehen dann die verschiedenen Möglichkeiten, gefolgt von einem Doppelpunkt.
  
-**Wichtig:** Hinter den Befehle muss aber (im Gegensatz zur ''elseif''-Konstruktion) immer ein ''break'' stehen -- sonst wird __alles ab dem ''case''__ ausgeführt.+**Wichtig:** Hinter den Befehle muss aber (im Gegensatz zur ''elseif''-Konstruktion) immer ein ''break'' stehen -- sonst wird __alles ab__ dem ''case'' ausgeführt.
  
 <code php> <code php>
Zeile 108: Zeile 112:
     html('<p>Ungültige Antwort</p>');     html('<p>Ungültige Antwort</p>');
     break;             // Das letzte break muss nicht sein     break;             // Das letzte break muss nicht sein
 +}
 +// Weitere Fragen, die alle gestellt bekommen
 +question('BB01');
 +</code>
 +
 +Natürlich lässt sich dies auch platzsparender schreiben:
 +
 +<code php>
 +switch (value('TF03')) {
 +  case 1: question('IN15'); break;  // Frage nach Tarif
 +  case 2: question('IN16'); break;  // Frage zum DSL-Anschluss
 +  case 3: question('IN17'); break;  // Fragen zum Kabel
 +  default: html('<p>Ungültige Antwort</p>');
 } }
 // Weitere Fragen, die alle gestellt bekommen // Weitere Fragen, die alle gestellt bekommen
 question('BB01'); question('BB01');
 </code> </code>
de/create/filter-elseif.txt · Zuletzt geändert: 11.11.2014 23:21 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki