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>';
你好,我目前正在使用 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>';