我刚刚升级到PHP 7.3,但出现此错误:
Invalid body indentation level (expecting an indentation level of at least 4)
代码如下:
$html = <<<HTML
<html>
<body>
HTML test
</body>
</html>
HTML;
答案 0 :(得分:1)
这是由PHP 7.3中的新flexible Heredoc syntaxes引起的。
在以前的PHP版本中,结束标记不允许缩进:
$string = <<<EOF
Hello
EOF;
从PHP 7.3开始,结束标记可以缩进。
在此示例中,EOF
缩进了4个空格。 字符串的主体还将在每行的开头删除4个空格。
$string = <<<EOF
Hello
EOF;
如果将结束标记缩进到正文的任何行之外,则会引发Parse错误:
$string = <<<EOF
Hello
EOF;
错误消息的原因有两个:
但是对于那些升级到PHP 7.3的人来说,可能性更大:
HTML
,它也存在于字符串中。由于现在允许灵活的间距,因此PHP错误地检测到字符串在我意图之前已关闭。