结论
结束标记不一定要顶格写,但是开始标记和结束标记中间的内容的缩进必须大于等于结束标记的缩进
实验PHP版本
PHP 7.4.15 (cli) (built: Feb 2 2021 20:47:45) ( ZTS Visual C++ 2017 x64 )
Copyright © The PHP Group
Zend Engine v3.4.0, Copyright © Zend Technologies
合法示例
<?php
//结束标记不一定要顶格写,但是开始标记和结束标记中间的内容的缩进必须大于等于结束标记的缩进。
//合法
//heredoc
$Err = <<<EOF
大家好
EOF;
echo $Err;
//nowdoc
$Err = <<<'EOF'
大家好
EOF;
echo $Err;
class TEST
{
public static $Err = <<<'EOF'
大家好
EOF;
}
echo TEST::$Err;
不合法示例
第一种
Parse error: Invalid body indentation level (expecting an indentation level of at least 8) in …
<?php
//不合法
class TEST
{
public static $Err = <<<'EOF'
大家不好啦
EOF;
}
echo TEST::$Err;
第二种
// Parse error: Invalid body indentation level (expecting an indentation level of at least 4)
<?php
// 不合法
$Err = <<<EOF
大家不好啦
EOF;
echo $Err;
第三种
// Parse error: Invalid body indentation level (expecting an indentation level of at least 4)
<?php
$Err = <<<'EOF'
大家不好啦
EOF;
echo $Err;