Odpowiedz
To jest składnia heredoc. Zaczynasz ciąg heredoc przez wstawienie <<<
plus wybranego tokena i kończenie go poprzez umieszczenie tylko tokena (i nic więcej!) W nowym wierszu. Dla wygody istnieje jeden wyjątek: możesz dodać pojedynczy średnik po ograniczniku końcowym.
Przykład:
echo <<<HEREDOC
This is a heredoc string.
Newlines and everything else is preserved.
HEREDOC;
Jaka jest różnica między tym a zwykłym ciągiem znaków? Dlaczego nie po prostu zrobić "echo" To jest heredoc ..... " – CodyBugstein
@Imray o ile pamiętam, możesz umieścić pojedyncze i podwójne cudzysłowy w heredoc, jak również zmiennych i wszystko będzie działać. Jeśli chcesz użyć podwójnych cudzysłowów w swoim wyrażeniu 'echo', będziesz musiał uciec z nich. Mimo to przestałem używać heredoc wkrótce po tym, jak zacząłem, ponieważ nie lubiłem łamać moich wzorów wcięć. Teraz tworzę wiele ciągów jako tablice, które później 'implode (" \ n ", $ string_array)'. –
Twierdzę, że jest to bardzo przydatne, jeśli chcesz wstrzykiwać różne języki. Możliwość używania nowych linii bez konkatenacji (co może przerwać wykonywanie kodu itp.) Jest naprawdę przyjemna. – SourceOverflow
Jest początek napisu, który używa HEREDOC syntax.
trzeci sposób, aby oddzielić ciągi jest składnia heredoc: < < <.
Po tym operatorze jest dostarczany identyfikator, a następnie znak nowej linii. Ciąg następuje, a następnie ponownie ten sam identyfikator, aby zamknąć cytat.
Fajnie, nie wiedziałem, że jeden ... Przeczytałem link, który wysłałeś i szczerze, rozumiem, dlaczego Mógłbym żyć bez tego do tej pory! ;) Jaka byłaby korzyść z używania tego dla ciągu znaków? – Gabriel
@Gabriel pozwala na użycie obu rodzajów cytatów w ciągu znaków bez ich łamania: '<<< END Hello" $ name "! Jak dzisiaj wygląda "współmałżonek"?KONIEC "Jeden wielki ból w dupie polega jednak na tym, że znacznik' END' nie może być wcięty, więc zawartość Heredoc zazwyczaj łamie wcięcie twojego kodu. Naprawdę nie jest to jedna z najważniejszych funkcji PHP :) –
@YiJiang, która faktycznie powstała z powodu niemieckiej lokalizacji! Cholerna geolokalizacja, zawsze podaje mi niewłaściwy link, mimo że angielski jest moim językiem przeglądarki. Poprawione, okrzyki :) –
To PHP heredoc
.
przykład:
$sql = <<<MySQL_QUERY
SELECT *
FROM TAB
WHERE A = 1 AND B = 2
MySQL_QUERY;
To heredoc syntax.
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
To się nazywa heredoc, a to pozwala zrobić długi kawałek tekstu, który jedzie na kilka linii. Możesz umieścić tam zmienne PHP i zastąpią je wartością. Słowo WYKRES może być cokolwiek. Musi być taki sam, aby rozpocząć i zatrzymać, gdy zaczyna się cytowany tekst.
Można zrobić to samo, dodając wiele cytowanych ciągów, ale jest to w większości przypadków czystsze w przypadku dokumentów rozszerzonych, takich jak ten tekst HTML. Jest też coś, co nazywa się nowdoc, co jest jak pojedynczy łańcuch cudzysłowu w PHP, ale to nie pozwoli ci używać zmiennych w nich.
Oh ok, dzięki. zamiast długo szukać, pomyślałem, że po prostu zadaję szybkie pytanie – user1464971
To heredoc, dla długich łańcuchów, że nie musisz się martwić o cudzysłowy i cokolwiek. Jeśli zauważysz słowo WYKRES, a następnie pojawi się linia z napisem WYKRES ;, który wskazuje koniec napisu.
Ważne, aby pamiętać, że podczas korzystania z tego formatu jest to, że jakikolwiek łańcuch, którego używasz do zdefiniowania końca ciągu (takiego jak WYKRES w tym przypadku), słowo to musi pojawić się w osobnej linii, a następnie średnik i znaki NO mogą wystąpić po średniku w tej samej linii, nawet w białych znakach, w przeciwnym razie PHP myśli, że jest częścią ciągu.
- 1. Co oznacza operator Bash <<<?
- 2. Php co znaczy <<<?
- 3. Co oznacza `<< =` w SBT?
- 4. Co oznacza ten symbol w PHP <? =
- 5. <% $, <% @, <% =, <% # ... o co chodzi?
- 6. Co oznacza <- oznacza w Javie?
- 7. Co oznacza "/// <exclude/>"?
- 8. co <> oznacza w Pythonie
- 9. Co oznacza <E> w kolekcji <E>?
- 10. Co oznacza "NSBinarySearchingFirstEqual = (1UL << 8)" w definicji wyliczenia?
- 11. Co oznacza "<<" (podwójne mniej niż) bez kłótni?
- 12. Co oznacza typedef enum składniowa, jak "1 << 0"?
- 13. Co oznacza symbol <??> w języku C# .NET?
- 14. Co oznacza <T> (nawiasy ostrokątne) w języku Java?
- 15. W języku C++ co oznacza szablon <>?
- 16. Co oznacza mapa <?, ?> w języku Java?
- 17. Co oznacza "<?" and ">?" w języku C++
- 18. scalac -explaintypes: Co oznacza "<notype><: X?" oznaczać?
- 19. Co oznacza <$> w Haskell?
- 20. Co oznacza symbol <> w MSIL?
- 21. Co oznacza <%=h ... %> w Railsach?
- 22. Co robi << w Pythonie?
- 23. Co robi potrójny znak "mniej niż" ("<<<`) w języku PureScript?
- 24. ASP.NET: Co oznacza znak "#" rozpoczynający <% %>?
- 25. Co dokładnie oznacza <[email protected]>?
- 26. Storyboard, co oznacza znacznik <animations/>?
- 27. Co oznacza <> dla genericów java?
- 28. C++: Co oznacza szablon <class>?
- 29. Co robi (1U << X)?
- 30. Ucieczka z literału <? Php i <? w skrypcie PHP
Możesz przeczytać dokumentację PHP na składni [Heredoc] (http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.[oc) dla lepsze zrozumienie. –
Jeśli potrzebujesz innych wyjaśnionych symboli, [to jest dobra informacja] (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