2009-08-20 9 views
-1

mögliche Dubletten:
How do I use that “<<<HTML” thing in PHP?
PHP <<<EOBWas ist das in PHP? Mehrere Code für eine Variable

$sql = <<<MySQL_QUERY 
    CREATE TABLE IF NOT EXISTS testDB (
    title VARCHAR(150), 
    bodytext TEXT, 
    created VARCHAR(100) 
) 
    MySQL_QUERY; 

Ich habe Leute die oben verwenden gesehen mehrzeiligen String enthalten und auf eine Variable, fragte mich, ob es einen Namen für diese Art von Nutzung gibt? Damit ich es nachschlagen kann.

+1

Dupe mindestens ein paar Mal: ​​http://stackoverflow.com/questions/1048481/php-eob http: // stackoverflow.com/questions/571894/how-do-i-write-the-toc-thing-in-php http://stackoverflow.com/questions/1040578/how-do-i-write-this-out-php in-php-wo-ich-würde-verwenden-den-zum-ausdrucken-heraus-Inhalt http://stackoverflow.com/questions/1203479/how-doi-i-use-that-html-thing-in- php – karim79

+2

Es ist ein Betrogener, aber Duples sind schwer zu finden, wenn Sie nicht wissen, nach 'Heredoc' zu suchen. –

+0

@Tom Haigh - guter Punkt, denken Sie, dass Fragen wie "was zum Teufel ist diese Syntax" Ausnahmen von der Regel Dupe sein sollten? – karim79

Antwort

10

Heredoc syntax:

Ein dritte Weg string s ist die Syntax heredoc abgrenzen: < < <. Nach diesem Operator wird eine Kennung bereitgestellt, dann eine neue Zeile. Die string selbst folgt, und dann die gleiche Kennung erneut, um das Angebot zu schließen.

Die Abschlusskennung muss in der ersten Spalte der Zeile beginnen. Außerdem muss der Bezeichner denselben Benennungsregeln wie jeder andere Bezeichner in PHP entsprechen: Er darf nur alphanumerische Zeichen und Unterstriche enthalten und muss mit einem Zeichen oder Unterstrich beginnen, das nicht aus Ziffern besteht.

Warnung Es ist sehr wichtig zu beachten, dass die Zeile mit dem schließenden Bezeichner keine anderen Zeichen enthalten, außer ein Semikolon (;). Das bedeutet insbesondere, dass der Bezeichner nicht eingerückt sein darf, und es dürfen keine Leerzeichen oder Tabulatoren vor oder nach dem Semikolon vorhanden sein. Es ist auch wichtig zu wissen, dass das erste Zeichen vor dem schließenden Bezeichner ein Newline sein muss, wie es vom lokalen Betriebssystem definiert wird. Dies ist \ n auf UNIX-Systemen, einschließlich Mac OS X. Dem abschließenden Begrenzer muss auch ein Zeilenumbruch folgen.

Wenn diese Regel nicht korrekt ist und die Abschlusskennung nicht "sauber" ist, wird sie nicht als Abschlusskennung betrachtet und PHP sucht weiter nach einer. Wenn vor dem Ende der aktuellen Datei kein ordnungsgemäßer Abschlussbezeichner gefunden wird, wird in der letzten Zeile ein Parsefehler angezeigt.

Heredocs kann nicht zum Initialisieren von Klasseneigenschaften verwendet werden. Seit PHP 5.3, diese Einschränkung gilt nur für Heredocs enthält Variablen ...

+0

Paolo hat den Kampf wieder gewonnen, aber das ist ein dupiger Dupe. – karim79

+1

Oo, Schande über mich. Ich habe sogar einem der Betrogenen geantwortet! :( –

+0

@Paolo Bergantino - Ich hätte das auch beantwortet, ich bin nur ein schlechter Verlierer :( – karim79

Verwandte Themen