Hier im Forum bekommt ihr bei euren fragen schnelle hilfe.Hier geht es rund um das Web SeitenProgrammieren.Alles rund ums Javascript,Html,Php,Css und Sql.Auf fast allen Fragen haben wir eine Antwort.
Der Soforthilfe-chat verspricht das ,was sein Name sagt. Hier sind Leute Online die sofort ihre hilfe anbieten.Seht in der OnlineListe nach und wenn einer Online ist werdet ihr auch antwort bekommen. Admine ,Moderatoren und Helfer sind unsere Spezialisten in Sachen Web Programierung
71 Unwetterwarnungen in Deutschland
Die Datenbank wurde zuletzt am 02.08.2020 17:34:28 aktualiesiert
71

Funktionen oder iterative Programmierung?

Wie in allen Programmiersprachen, die Funktionen unterstützen, gilt auch in PHP, dass man keine Codeblöcke einfach von einem Script in ein anderes kopieren sollte. Ich höre Stimmen: „Aber ich brauche diesen Block doch in beiden Scripten“.
Meine Antwort: „Richtig, dagegen ist auch nichts einzuwenden. Aber du brauchst den Code nicht 2 mal.“

Dieser Dialog zielt darauf ab, dass es Funktionen gibt und diese sollte man auch nutzen – und am besten effektiv nutzen. Leider gibt es nämlich auch das Gegenteil zu den in diesem Artikel beschriebenen Entwicklern: solche, die fast vollständig ohne Funktionen auskommen und lieber iterativ von der ersten bis zur letzten Zeile vorgehen. Was ist nun besser?

Funktionen, die in mehreren Dateien vorkommen, sollte man in einer Funktionendatei unterbringen, die man dann in die Scripte per include() einfügen kann, wo sie benötigt werden.
Das Problem an einer solchen Funktionendatei ist, dass der include()-Befehl ausgeführt werden muss und alle in der eingefügten Datei enthaltenen Funktionen interpretiert werden müssen. Es ist also bequem mit Funktionen zu programmieren – ohne Frage.

Da dieser Blog allerdings nicht „PHP Möglichst bequem“ sondern „PHP Performance“ heißt, möchte ich auf die Möglichkeit verweisen, Funktionen nicht zu verwenden, wenn man wirklich jedes Quentchen Performance aus seiner Anwendung holen möchte.
Ich hab da mal was vorbereitet:

 
function getName() {    
       return "Jan";
 }   
 function getBeitraege() {   
       return array("Test 1","Test 2","Test 3");
 }  
 function formatBeitraege($arr) {       
        $str = "";
        foreach($arr as $beitrag) {
           $str .= $beitrag."
"; } return $str; } echo getName(); echo "Neue Beiträge für dich:
"; echo formatBeitraege(getBeitraege());

Dieses Script arbeitet mit Funktionen. Als Gegner tritt folgendes Script an, das iterativ vorgeht:

 $name = "Jan";
  $beitraege = array("Test 1","Test 2","Test 3");
    echo "Hallo ".$name;
  echo "Neue Beiträge für dich:
"; foreach($beitraege as $beitrag) { echo $beitrag."
"; }

Beide Scripte arbeiten mit vorgegebenen Daten. In der Praxis würden die Daten bei dem funktionsorientierten Script innerhalb der Funktionen aus der Datenbank geholt bzw. beim iterativen direkt die Queries in der Zeile geschrieben, in der sie benötigt werden.

Auswertung
Als Ergebnis erhält man folgendes:

Datei Gesamtlaufzeit durchschnittliche Laufzeit pro Durchlauf Verhältnis zur schnellsten Variante
result_ausgabe_
iterativ.php
12.748331 s 1.275 ms 100 %
result_ausgabe_
funktionen.php
13.639613 s 1.364 ms 107 % (+ 7%)

Die iterative Methode ist in diesem Fall durchaus schneller. Allerdings wird ein großes Script durch solche Aktionen schnell unübersichtlich. Deshalb kann ich diese Methode nur für PHP-Scripte empfehlen, die wirklich auf jedes Quentchen Geschwindigkeit achten müssen.