Schulz: PHP in HTML in PHP

Morgen!

Folgender Code ist unübersichtlich, funktioniert aber:

<?php if (is_null($row['URL1']) == false) { ?>
<table>
 <tr>
  <td>
   Informationen
  </td>
 </tr>
 <tr>
  <?php if (is_null($row['URL1']) == false) { ?>
  <td>
   <a href="<?php echo $row['URL1'] ?>"><?php echo $row['URL1'] ?></a>
  </td>
 </tr>
 <tr>
 <?php } ?>
 <?php if (is_null($row['URL2']) == false) { ?>
  <td>
   <a href="<?php echo $row['URL2'] ?>"><?php echo $row['URL2'] ?></a>
  </td>
 </tr>
 <?php } ?>
</table>
<?php } ?>

Schrecklich, ich weiß! Allerdings ist das nicht von mir. Ich soll daran nur was inhaltliches Berichtigen...
Wenn man sich jetzt die Mühe machen würde alles umzuschreiben, z.B.:
  <?php if (is_null($row['URL1']) == false) {
     echo '<td>';
     echo "<a href=$row['URL1']>$row['URL1']</a>";
     ...
würde das z.B. Performance bringen? (ganz zu schweigen von der Übersichtlichkeit)

Danke für Eure Mühe!
Schulz

  1. würde das z.B. Performance bringen? (ganz zu schweigen von der Übersichtlichkeit)

    Nein. Es ist sogar so, dass bares HTML im Code schneller ausgeführt wird als seine Ausgabe durch echo oder einer anderen Anweisung.

    Ich habe sogar in Erinnerung in irgendwelchen Coding Guidelines die Empfehlung gelesen zu haben es so zu machen. Ich finde nur gerade nicht wo das war.

    Jedenfalls:

    • Der Performance tust du keinen Gefallen, wenn du den Code dahingehend umbaust.
    • Übersicht ist Geschmackssache.
    1. Danke vielmals.

    2. Hallo,

      Ich habe sogar in Erinnerung in irgendwelchen Coding Guidelines die Empfehlung gelesen zu haben es so zu machen. Ich finde nur gerade nicht wo das war.

      Ich glaub im PHP Tutorial von QuakeNet wurde das mal erwähnt.
      Ich würde meine Hand aber nicht dafür ins Feuer legen.
      Es ist aber in der Tat so, dass der PHP-Parser bei der Ausgabe von HTML per echo bemüht wird. Das macht natürlich einen Performance-Unterschied, der bei kleineren Skripten vernachlässigbar ist.
      Bei größeren Ausmaßen sollte man kein HTML durch den Parser schicken.

      Wenn man sich vorher Gedanken über die Struktur des Quelltextes macht,
      errreicht man auch mit dem Wechsel zwischen PHP und HTML eine gute Übersichlichkeit.

      Grüße, Matze

      1. Hello,

        Es ist aber in der Tat so, dass der PHP-Parser bei der Ausgabe von HTML per echo bemüht wird.

        insbesondere bei der Verwendung von Doublequotes, da in dem Fall der String noch nach Variablen durchsucht werden muss.

        MfG
        Rouven

        --
        -------------------
        Death is nature's way of telling you to slow down.
        1. Hi,

          insbesondere bei der Verwendung von Doublequotes, da in dem Fall der String noch nach Variablen durchsucht werden muss.

          in der Praxis halte ich diesen Unterschied für vernachlässigbar, denn auch ein String innerhalb von Singlequotes muss nach Escapesequenzen durchsucht werden. Erst wenn Variablen innerhalb von Doublequotes gefunden werden, führt deren Analyse zu einer relativ großen Differenz in der Ausführungszeit.

          Es gibt im Archiv einen Thread zu diesem Thema, incl. Benchmark. Der ist allerdings von 2005 IIRC, daher bin ich mir nicht sicher, ob der Unterschied inzwischen überhaupt noch so groß ist...

          Gruß,
          Andreas.

          1. Hallo,

            Es gibt im Archiv einen Thread zu diesem Thema, incl. Benchmark. Der ist allerdings von 2005 IIRC, daher bin ich mir nicht sicher, ob der Unterschied inzwischen überhaupt noch so groß ist...

            Niemand hat behauptet, dass der Unterschied groß ist.
            Wie gesagt ist er sowieso erst bei "großen" Projekten relevant.
            Gesagt wurde nur, dass es einen gibt.
            Dessen sind wir uns alle, der OP eingeschlossen, einig.

            Grüße, Matze

            1. Hi Matze,

              Niemand hat behauptet, dass der Unterschied groß ist.

              doch, ich, direkt im Satz vor dem von dir zitierten :-) K.A., warum du meinen Hinweis auf etwas anderes beziehst.

              Gesagt wurde nur, dass es einen gibt.
              Dessen sind wir uns alle, der OP eingeschlossen, einig.

              woher weißt du denn das? Der OP hat sich doch garnicht mehr geäußert... Darüber hinaus verstehe ich nicht ganz, was du mir mit diesem Posting sagen wolltest.

              Gruß,
              Andreas.

              1. Hallo,

                doch, ich, direkt im Satz vor dem von dir zitierten :-) K.A., warum du meinen Hinweis auf etwas anderes beziehst.

                genau genommen hast du es so geschrieben:

                in der Praxis halte ich diesen Unterschied für vernachlässigbar(...)Erst wenn Variablen innerhalb von Doublequotes gefunden werden, führt deren Analyse zu einer relativ großen Differenz in der Ausführungszeit.(...)daher bin ich mir nicht sicher, ob der Unterschied inzwischen überhaupt noch so groß ist...

                Also du behauptest selbst, das der Unterschied nicht relevant ist.
                Allerdings scheintst du dir bei den Variablen nicht sicher zu sein.
                Ich hingegen behaupte, dass der Unterschied bei kleineren Skripten auch dann zu vernachlässigen ist.

                Darüber hinaus verstehe ich nicht ganz, was du mir mit diesem Posting sagen wolltest.

                Siehe 1 Satz weiter oben :)

                Grüße, Matze

                1. Hi Matze,

                  Also du behauptest selbst, das der Unterschied nicht relevant ist.

                  aber nur den Unterschied von singlequoted Strings ohne Variablen zu doublequoted Strings ohne Variablen. Sobald Variablen innerhalb von doublequoted Strings analysiert werden müssen, halte ich den Unterschied für relevant.

                  Allerdings scheintst du dir bei den Variablen nicht sicher zu sein.

                  ja, ob die Größe der Differenz zwischen doublequoted Strings ohne Variablen und doublequoted Strings mit Variablen immer noch so groß ist wie damals. Wenn nicht, müsste ich meine o.g. Haltung mal überdenken.

                  Ich hingegen behaupte, dass der Unterschied bei kleineren Skripten auch dann zu vernachlässigen ist.

                  jepp, sehe ich genauso.

                  Darüber hinaus verstehe ich nicht ganz, was du mir mit diesem Posting sagen wolltest.

                  Siehe 1 Satz weiter oben :)

                  okay - dein Posting klang für mich nur so vorwurfsvoll, obwohl ich doch nur Rouvens Hinweis ergänzen wollte, dass es nicht so sehr auf die Art der Quotes ankommt, solange keine Variablen im Spiel sind (weil eben auch singlequoted Strings durchsucht werden müssen). Ich dachte schon, ich hätte wieder irgendwas falsch gemacht :)

                  Gruß,
                  Andreas.

                  1. Hallo,

                    okay - dein Posting klang für mich nur so vorwurfsvoll, obwohl ich doch nur Rouvens Hinweis ergänzen wollte, dass es nicht so sehr auf die Art der Quotes ankommt, solange keine Variablen im Spiel sind (weil eben auch singlequoted Strings durchsucht werden müssen). Ich dachte schon, ich hätte wieder irgendwas falsch gemacht :)

                    Keine Angst, alles im grünen Bereich ;)
                    Vielleicht hätte ich die Antwort deutlicher formulieren sollen.

                    Grüße, Matze