PHP XML 声明导致编译器颜色编码错误

PHP XML declaration causing compiler color-coding error

你好,我目前正在使用 Microsoft Webmatrix,每当我进行 XML 声明时,我的编译器会将其与标记混淆,并导致我的所有其余 PHP 代码全黑而不是颜色编码,我所有的 HTML 都是米色的,就好像它是文本一样。这正在成为一个大问题,因为我的网页变得非常庞大,而且它的可读性绝对是一场噩梦。

xml 声明示例:

<?php
    $ThisvariableisNOTblack = "good";

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

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

是否有这种 XML 声明样式的替代方法?

问题可能出在 HEREDOC 语法的结尾 XML; 上。它必须在行首,不允许缩进。

如果它不在开头,则 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>';