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