Tom: meine erste Funktion

Beitrag lesen

Hello,

Ich habe meine erste Funktion geschrieben, aber irgendwas funktioniert damit nicht. Wenn ich diese benutze, steht der Wert bei Anzeige der Internetseite im Browser immer an anderer Stelle des HTML Codes, als er eigentlich sollte. Ich kanns nicht nachvollziehen.

Wenn es eine gut geschriebene Funktion sein soll, die den Regeln der strukturierten Programmierung genügt, dann sollte sie selber überhaupt nichts auf die Standardausgabe ausgeben, sondern einen Rückgabewert liefern. Also müssen die Echos verschwinden. Den Rückgabewert soll man dann (den Regeln  nach) an genau einer Stelle zurückgeben.

function DifWandler($Dif)

{
      $result = false;

switch($Dif)
      {

case 1:
            $result = "Haus";
        break;
        case 2:
            $result = "Motor";
        break;
        case 3:
            $result = "Laptop";
        break;
        case 4:
            $result = "Kamera";
        break;
        case 5:
            $result = "Bildschirm";
        break;
        default:
            $result = "ohne";
    }

return $result;

}

echo htmlspecialchars(DifWandler($_GET['dif']));

  
  
So könnte man für die Funktion auch ein sauberes Nassi-Shniderman-Diagramm zeichen. Sie hat einen Eingang und einen Ausgang. Der Rückgabewert wird vorinitialisiert, für den Fall, dass im Funktionskörper etwas schief geht. Das ist hier bei der übersichtlichen Funktion nicht zu erwarten, wäre aber bei einer mehrere Seiten langen Funktion nichts Ungewöhnliches.  
  
Auf die breaks zu verzichten, weil man stattdessen returns in den Programmablauf einbaut, ist keine gute Idee. Wenn Du dann irgendwo etwas änderst, das return vielleicht gegen mehrere Zeilen Code austauscht, dann hast Du plötzlich (wieder) ungewöhliche Verhaltensweisen und weißt nicht woher die kommen. Schmuddelprogrammierung kann man anfangen, wenn man gut genug ist und bis dahin hat man sich die hoffentlich auch abgewöhnt.  
  
  
Liebe Grüße aus dem schönen Oberharz  
  
  
Tom vom Berg  
![](http://selfhtml.bitworks.de/Virencheck.gif)  
  

-- 
Nur selber lernen macht schlau  
<http://bergpost.annerschbarrich.de>