Antwort
Das ist Heredoc-Syntax. Sie starten eine Heredoc-Zeichenkette, indem Sie <<<
plus ein Token Ihrer Wahl setzen und es beenden, indem Sie nur das Token (und nichts anderes!) In eine neue Zeile setzen. Aus praktischen Gründen gibt es eine Ausnahme: Sie können ein einzelnes Semikolon nach dem Endtrennzeichen hinzufügen.
Beispiel:
echo <<<HEREDOC
This is a heredoc string.
Newlines and everything else is preserved.
HEREDOC;
Was ist der Unterschied zwischen dieser und einer normalen Zeichenkette? Warum nicht einfach "echo" Dies ist ein heredoc ..... "' – CodyBugstein
@Imray so weit ich mich erinnern kann, können Sie Einzel- und doppelte Anführungszeichen in das Heredoc sowie Variablen und alles wird funktionieren. Wenn Sie in Ihrer 'echo' -Anweisung doppelte Anführungszeichen verwenden möchten, müssen Sie sie ausschließen. Dennoch habe ich kurz nachdem ich angefangen habe mit dem Einsatz von here- doc aufgehört, weil ich meine Eindrucksmuster dafür nicht brechen wollte. Jetzt formiere ich viele meiner Strings als Arrays, die ich später implode ("\ n", $ string_array) '. –
Ich würde argumentieren, dass es sehr nützlich ist, wenn Sie verschiedene Sprachen injizieren möchten. Die Möglichkeit, Zeilenumbrüche ohne Verkettung zu verwenden (was Code-Vervollständigung usw. stören könnte), ist wirklich nett. – SourceOverflow
Es ist der Beginn einer Zeichenfolge, die die HEREDOC syntax.
Eine dritte Möglichkeit Strings zu begrenzen verwendet, ist die heredoc Syntax: < < <.
Nach diesem Operator wird ein Bezeichner bereitgestellt, dann ein Zeilenumbruch. Die Zeichenfolge selbst folgt und dann die gleiche Kennung erneut, um das Zitat zu schließen.
Cool, ich wusste nicht, dass man ... Ich las den Link, den Sie gesendet haben und ehrlich, ich verstehe warum Ich könnte bis jetzt ohne das leben! ;) Was wäre der Vorteil, das für eine Zeichenkette zu verwenden? – Gabriel
@Gabriel ermöglicht es Ihnen, beide Arten von Zitaten innerhalb der Zeichenfolge zu verwenden, ohne es zu brechen: '<<< END Hallo" $ name "! Wie ist '$ Gatte' heute?END' Ein großer Schmerz im Arsch ist jedoch, dass der Marker 'END' nicht eingerückt werden darf, so dass der Inhalt des Codes normalerweise den Einzug des Codes unterbricht. Es ist in der Tat nicht wirklich eines der wichtigsten Features von PHP :) –
@YiJiang das war eigentlich wegen der deutschen Lokalisierung! Damn geolocation, gibt mir immer den falschen Link, obwohl Englisch meine Browsersprache ist. Korrigiert, Prost :) –
Es ist PHP heredoc
.
Beispiel:
$sql = <<<MySQL_QUERY
SELECT *
FROM TAB
WHERE A = 1 AND B = 2
MySQL_QUERY;
Es ist die heredoc syntax.
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
Dies ist ein heredoc genannt, und es können Sie ein langes Stück Text zu tun, die sich über mehrere Zeilen geht. Sie können PHP-Variablen einfügen und sie durch den Wert ersetzen. Das Wort CHART kann alles sein. Es muss nur gleich sein, um zu beginnen und zu stoppen, wo der zitierte Text beginnt.
Sie können das gleiche tun, indem Sie mehrere Strings in Anführungszeichen anhängen, aber dies ist meistens für erweiterte Dokumente wie diesen HTML-Text sauberer. Es gibt auch eine so genannte nowdoc, die wie eine einfache Anführungszeichenfolge in PHP ist, aber diese wird nicht zulassen, dass Sie Variablen in ihnen verwenden.
Oh okay, danke. Anstatt lange zu suchen, dachte ich, ich würde nur eine kurze Frage stellen – user1464971
Es ist eine Heredoc, für lange Zeichenfolgen, die Sie nicht über Anführungszeichen und was nicht kümmern müssen. Wenn Sie das Wort CHART bemerken und dann gibt es eine Zeile, die CHART; angibt, die das Ende der Zeichenfolge angibt.
Bei der Verwendung dieses Formats ist zu beachten, dass unabhängig von der Zeichenfolge, die Sie zum Definieren des Endes der Zeichenfolge verwenden (z. B. CHART), dieses Wort in einer eigenen Zeile erscheinen muss, gefolgt von a Semikolon, und KEINE Zeichen können nach dem Semikolon in der gleichen Zeile vorkommen, auch Leerzeichen, sonst glaubt PHP, dass es Teil der Zeichenkette ist.
- 1. Php was bedeutet <<<?
- 2. THREE.Camera.prototype.lookAt</ <() - Was bedeutet</ <?
- 3. Was bedeutet '<? =' In PHP?
- 4. Java was bedeutet "<<"?
- 5. Was bedeutet `<< =` in SBT?
- 6. Was bedeutet << in Python?
- 7. Was bedeutet "<< -" in Ruby?
- 8. Was bedeutet "erwarten << - DONE"?
- 9. Was bedeutet Klasse << selbst?
- 10. Control.Category, was bedeutet >>> und <<<?
- 11. Was bedeutet <>?
- 12. Was bedeutet <- in Java?
- 13. Was bedeutet <- in AI?
- 14. Was bedeutet '</' in JavaScript?
- 15. Was macht "<%:"?</p> <pre><code><%: Model.FirstName %> </code></pre> <p>was bedeutet "<%:" do
- 16. Was bedeutet "x << ~ y" in JavaScript?
- 17. Was bedeutet `<-`, `> -`,` <+`, `> + `in Python?
- 18. Was bedeutet << or > >> in Java?
- 19. Was bedeutet "NSBinarySearchingFirstEqual = (1UL << 8)" in einer Aufzählungsdefinition?
- 20. Was bedeutet das Tag << in JavaScript?
- 21. Was bedeutet class_eval << - "end_eval", __FILE__, __LINE__ in Ruby?
- 22. Was bedeutet <E> in Sammlung <E>?
- 23. Was bedeutet "class << self" in Rails?
- 24. Was bedeutet <T extends?
- 25. Was bedeutet "/// <exclude/>"?
- 26. <? Php statt <?
- 27. PHP: <<< vs ob_start
- 28. Was bedeutet typedef Enum-Syntax wie '1 << 0'?
- 29. Was bedeutet typedef Enum-Syntax wie '1 << 0'?
- 30. Was bedeutet es durch Typ = 1 << 0?
Sie können die PHP-Dokumentation auf der [Heredoc] (http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc) -Syntax für eine lesen besseres Verstehen. –
Wenn Sie andere Symbole erläutert benötigen, [dies ist eine gute Referenz] (http://stackoverflow.com/questions/3737139/reference-what-does-this-symbol-mean-in-php) – Wrikken
http: // stackoverflow.com/questions/5673269/what-is-the- Advantage-of-using-heredoc-in-php – zloctb