Was ist die Verwendung von <<< EOD in PHP?

75

Ich implementiere Node to PDF mit Drupal und TCPDF. In diesem Fall soll ich dieses <<<EODTag verwenden. Wenn ich dieses O / P nicht gegeben habe, ist es nicht perfekt . Ich kann den Zweck nicht genau verstehen <<<EOD.

Könnte jemand bitte das Konzept erklären?

$html = <<<EOD
        <tr>
          <td>TEST</td>
        </tr>
EOD;

Danke im Voraus....

Fero
quelle

Antworten:

98

Das ist nicht HTML, sondern PHP. Es wird als HEREDOC-String-Methode bezeichnet und ist eine Alternative zur Verwendung von Anführungszeichen zum Schreiben mehrzeiliger Strings.

Der HTML-Code in Ihrem Beispiel lautet:

    <tr>
      <td>TEST</td>
    </tr>

Lesen Sie die PHP-Dokumentation , die dies erklärt.

Der Pellmeister
quelle
6
es wird auch in perl verwendet :) vergiss das nicht!
Samuele Mattiuzzo
1
Wort! +1. Aber da die Frage mit PHP markiert war, hielt ich dies für angemessen.
Der Pellmeister
34

Es gibt vier Arten von Strings in PHP. Dies sind einfache Anführungszeichen ('), doppelte Anführungszeichen (") sowie Nowdoc- (<<<'EOD')und Heredoc- (<<<EOD)Zeichenfolgen

Sie können sowohl einfache als auch doppelte Anführungszeichen in der Heredoc-Zeichenfolge verwenden. Variablen werden nur in doppelte Anführungszeichen erweitert.

nowdoc-Zeichenfolgen erweitern Variablen nicht wie einfache Anführungszeichen.

Ref: http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

Poomalairaj
quelle
6
Was bedeutet die EOD selbst? Und warum verwenden manche EOT?
CMCDragonkai
4
@CMCDragonkai Gute Frage. Es scheint, dass EODdies nichts Besonderes bedeutet und dass Sie hier praktisch jedes Etikett verwenden können, solange das Öffnen und Schließen von Tags ähnlich ist. Wenn Sie hier in tiefere Beispiele ( Example #) schauen , finden Sie Beispiele mit LABEL( <<<LABEL+ LABEL;) und FOOBAR. Ich habe auch DELin einigen meiner Quellen gefunden. Es scheint also, dass Sie alles verwenden können, was Sie wollen.
Trejder
1
Ich habe immer angenommen, dass es "End Of Data" bedeutet
Sp4cecat
14
EOD = Ende der Daten, EOT = Ende des Textes. Beliebige Bezeichnungen.
Phil Perry
4
Abgeleitet vom herkömmlichen EOF-Systemsignal (End-of-File). In herkömmlichen Computerdateien handelte es sich normalerweise um einen Bandinhalt (daher EOT, Bandende oder Übertragungsende), der als Streams bedroht war (EOS wurde bereits "genommen", also EOD, Ende des Datenstroms) und von weitergeleitet ein Anruf zum anderen. Später haben Newsgroups und E-Mail-Clients diese Markierung für das Ende des eingegebenen Textes angepasst, sofern er nicht in normalen Konversationen angezeigt wird. Es tat es. Hauptsächlich in Diskussionen über Standards und DOC-ähnliche Syntax. Einige CLI-E-Mail-Clients verwenden es bis heute. Die Geschichte des Rechnens ist wunderschön.
cprn