Объявление PHP XML, приводящее к ошибке цветовой кодировки компилятора

Здравствуйте, я в настоящее время использую Microsoft Webmatrix, и всякий раз, когда я делаю декларацию XML, мой компилятор смешивает ее с тегом и заставляет весь остальной мой код PHP быть черным и не иметь цветовой кодировки, а также весь мой HTML, чтобы быть бежевым, как будто это был текст. Это становится большой проблемой, потому что мои веб-страницы становятся очень громоздкими, а читаемость - абсолютным кошмаром.

пример объявления xml:

<?php
    $ThisvariableisNOTblack = "good";

    $xml = <<<XML
    *xml content*
    XML;

    $thisvariableisnowblack = "everything is now black below XML";
?>

Есть ли альтернатива этому стилю декларации XML?

1 ответ

Решение

Проблема может заключаться в закрытии XML; из синтаксиса HEREDOC. Это должно быть в начале строки, без отступов.

Если это не в начале, элемент HEREDOC не заканчивается. Если WebMatrix распознает XML, содержимое после него становится недопустимым после закрывающего тега. Кроме того, HEREDOC допускает переменные (например, строка в двойных кавычках).

В большинстве случаев NOWDOC является лучшим решением:

<?php

$xml = <<<'XML'
<some>
  <xml/>
</some>
XML;

Кроме того, строки PHP могут занимать несколько строк. Вы можете использовать одну строку в кавычках для вашего XML. Конечно, в этом случае вам придется избегать одинарных кавычек и обратной косой черты в строке.

$xml = 
  '<some>
     <xml>with a single quote \' and a backslash \\</xml> 
   </some>';
Другие вопросы по тегам