Paul: "echo xyz" oder "?> xyz <?php"

Hallo ihr Profis,
hab mal eine grundsätzliche Frage zu php.
Ich möchte (beispielsweise) eine Tabelle erstellen. Was würdet ihr empfehlen bzw. gibt es eine Grundregel was besser ist:

<table><tr><td>
 <?php
  $abc = 'xyz';
  echo $abc;
 ?>
 </td></tr><tr><td>
 <?php
  $def = 'uvw';
  echo $def;
 ?>
 </td></tr></table>

<php?
  echo '<table><tr><td>';
  $abc = 'xyz';
  echo $abc;
  echo '</td></tr><tr><td>';
  $def = 'uvw';
  echo $def;
  echo '<td><tr></table>';
 ?>

Also nochmal im Text: Ist es besser/performanter PHP zu unterbrechen wenn man die Tabelle erweitert oder sollte man PHP durchlaufen lassen und die Tabellenstruktur per echo ausgeben?

Paul

  1. Hi,

    Also nochmal im Text: Ist es besser/performanter PHP zu unterbrechen wenn man die Tabelle erweitert oder sollte man PHP durchlaufen lassen und die Tabellenstruktur per echo ausgeben?

    Um die "Performance" solltest du dir dabei wirklich keine Gedanken machen - das sind vielleicht Millisekundenbruchteile an Unterschied.

    Schreib' das, was (fuer dich) uebersichtlicher ist.

    Muss ja auch nicht immer entweder das eine oder das andere sein - wenn viele Variablenwerte auszugeben sind, moechte man nicht immer den Parserbereich auf- und wieder zu machen. Dann bieten sich vielleicht andere Moeglichkeiten an, bspw. sprintf zu nutzen o.ae.

    MfG ChrisB

  2. Hallo,

    Habe dazu einen interessanten Link gefunden.
    Php schneller machen

    gruß aus Senftenberg am See

    1. Guten Morgen

      Habe dazu einen interessanten Link gefunden.
      Php schneller machen

      Lasst Euch davon mal nicht in die Irre führen. Die Performance einer Seite hängt von wesentlich mehr Faktoren ab, als nur von der Variante in der man den Code schreibt. Es existieren zwar durchaus logische Begründungen warum das eine schneller als das andere sein soll, es lässt sich aber nicht pauschalisieren.

      Vor einiger Zeit hatte ich mich mit dem Thema näher beschäftigt und habe eine Seite gefunden, die verschiedenste Sachen von PHP testet. Also z.B. Variablen direkt in Strings, Singlequotes, Doublequotes, verschiedene Arten von Schleifen...

      Auf dieser Seite waren Tests online, die jeder ausprobieren konnte. Meiner Meinung nach sind die Ergebnisse nicht eindeutig und auch nicht 100% reproduzierbar was denn nun "schneller"=besser ist. Auch auf oben genannter Seite kann man natürlich behaupten, die Variante ist x% schneller als die andere... Beim nächsten Durchlauf schauts schon wieder anders aus, insbesondere bei Unterschieden im _Millisekunden_-Bereich!

      Für die meisten Webprojekte sollte es unerheblich sein, welche Art zu coden man verwendet, allein die Internetverbindung unterliegt größeren Schwankungen.

      Codet so, wie Ihr am Besten zurecht kommt. Ich für mich halte es so:

      • Variablen Grundsätzlich raus aus den Strings: $a = "Wert: ".$b;
      • In Passagen mit mehr HTML (bzw. in denen es auf die Seitenstruktur ankommt): <?php ... ?>
      • In Passagen wo die Programmierung im Voredergrund steht wird das HTML über PHP ausgegeben...

      Samoht

      1. Hi,

        Codet so, wie Ihr am Besten zurecht kommt. Ich für mich halte es so:

        • Variablen Grundsätzlich raus aus den Strings: $a = "Wert: ".$b;

        Dann aber bitte einfache Anführungszeichen sonst muss PHP unnötig parsen.

        • In Passagen mit mehr HTML (bzw. in denen es auf die Seitenstruktur ankommt): <?php ... ?>
        • In Passagen wo die Programmierung im Voredergrund steht wird das HTML über PHP ausgegeben...

        Eine sehr tolle Erfindung für Mischausgaben finde ich uberdies Heredoc.

        Paul

          • Variablen Grundsätzlich raus aus den Strings: $a = "Wert: ".$b;

          Dann aber bitte einfache Anführungszeichen sonst muss PHP unnötig parsen.

          Bitte beachtet: Selbst der Unterschied zwischen Singlequotes und Doublequotes ist nicht wirklich signifikant und überdies AFAIK unterschiedlich bei verschiedenen PHP-Versionen.

          Samoht

          1. Bitte beachtet: Selbst der Unterschied zwischen Singlequotes und Doublequotes ist nicht wirklich signifikant und überdies AFAIK unterschiedlich bei verschiedenen PHP-Versionen.

            Ohh, der Unterschied ist gewaltig und auch vollkommen logisch.
            Klar in kleinen Scripten macht sich da nicht bemerkbar aber in Grossen umso mehr.

            Stell Dir vor du bekommst den Auftrag 10 Kisten Äpfel zu prüfen und die faulen Äpfel aus jeder Kiste rauszuholen oder eben alternativ(Singlequote)
            die Kisten unbeachtet wegzustellen. Das ist der Wahrheit,Drama, Baby, Drama ;-)

            Paul

            1. Bitte beachtet: Selbst der Unterschied zwischen Singlequotes und Doublequotes ist nicht wirklich signifikant und überdies AFAIK unterschiedlich bei verschiedenen PHP-Versionen.

              Ohh, der Unterschied ist gewaltig und auch vollkommen logisch.
              Klar in kleinen Scripten macht sich da nicht bemerkbar aber in Grossen umso mehr.

              Stell Dir vor du bekommst den Auftrag 10 Kisten Äpfel zu prüfen und die faulen Äpfel aus jeder Kiste rauszuholen oder eben alternativ(Singlequote)
              die Kisten unbeachtet wegzustellen. Das ist der Wahrheit,Drama, Baby, Drama ;-)

              Logisch. Meinte ja nur bei "kleinen" Scripten. Sollte auch kein Aufruf sein Doublequotes zu verwenden. Lediglich ein Hinweis an die die meinen damit einen enormen Leistungsschub zu bekommen, was bei den meisten Scripten vermutlich nicht der Fall sein wird. :)

              Und selbstverständlich ist es sinnvoll sich einen "guten" Programmierstil anzueignen und ich entschuldige mich hiermit für mein o.g. Beispiel...

              Samoht

  3. Hellihello

      
    <table><tr><td>  
    <?php echo $abc;?>  
    </td></tr></table>  
    
    

    Die Definitionen können woanders stattfinden.

      
    <p>  
    <?php if ($a):?>  
    <strong>  
    <?php echo $a?>  
    </strong>  
    <?php else:?>  
    blablub  
    <?php endif;?>  
    
    

    Ebenso mit while, switch und foreach.

    Dank und Gruß,

    frankx

    --
    tryin to multitain  - Globus = Planet != Welt
  4. echo $begrüßung;

    Ist es besser/performanter [...]

    Wie bereits erwähnt ist die Gesamt-Performance von deutlich mehr als der einen Anweisung abhängig. Es stimmt, dass einige Anweisungen im Durchschnitt schneller sind als andere Anweisungen. Doch oftmals sind diese Unterschiede zwar messbar, aber nur dann signifikant feststellbar (fühlbar), wenn man einen Test mit einer Schleife mit 4-, 5- oder 6-stelliger Durchlaufanzahl laufen lässt. So etwas ist aber ein Laborversuch und in der Praxis nicht anzutreffen. Hochgerechnet auf eine echte Anwendung müssten dann auch String mit einer Länge von ebendieser Durchlaufzahl oder eines Vielfachen davon und zum Zwecke der Übertragung zum Client oder anderen Ausgabemedien erzeugt werden.

    So ein Performancevergleich mit einer Schleife geht also völlig an der Realität vorbei. Wenn man realistisch testen will, sollte man prüfen, wieviel Requests pro Zeiteinheit jeweils an ein Script mit der einen Variante und mit der anderen Variante abgearbeitet werden, bzw. die durchschnittliche Laufzeit der Requests, wenn man viele gleichzeitig loslässt, denn das entspricht ja doch eher dem, was ein Webserver normalerweise zu tun bekommt. Und am besten sollten die Testscripts nicht nur den Code eines einzelnen Messkandidaten enthalten, sondern ein komplettes Script, so wie man es am Ende einzusetzen gedenkt.

    echo "$verabschiedung $name";