and*_*ber 3 php heredoc php-7.3
我刚刚升级到 PHP 7.3,但出现此错误:
Invalid body indentation level (expecting an indentation level of at least 4)
Run Code Online (Sandbox Code Playgroud)
这是代码:
Invalid body indentation level (expecting an indentation level of at least 4)
Run Code Online (Sandbox Code Playgroud)
这是由PHP 7.3 中新的灵活 Heredoc 语法引起的。
在以前的 PHP 版本中,结束标记是不允许有缩进的:
$string = <<<EOF
Hello
EOF;
Run Code Online (Sandbox Code Playgroud)
从 PHP 7.3 开始,结束标记可以缩进。
在本例中,EOF缩进了 4 个空格。字符串的主体也将从每行的开头剥离 4 个空格。
$string = <<<EOF
Hello
EOF;
Run Code Online (Sandbox Code Playgroud)
如果结束标记比正文的任何行缩进得更远,它将抛出解析错误:
$string = <<<EOF
Hello
EOF;
Run Code Online (Sandbox Code Playgroud)
错误消息的原因有两个:
但对于那些升级到 PHP 7.3 的人来说,可能更有可能:
HTML也存在于字符串中的标记。由于现在允许灵活的间距,PHP 错误地检测到字符串在我打算之前已经关闭。| 归档时间: |
|
| 查看次数: |
6228 次 |
| 最近记录: |