PHP:使用Heredocs正确缩进

six*_*ude 9 php formatting coding-style indentation

我只是读了思想php doucmentation for heredocs但我没有看到任何方法正确地使用代码.这可能在PHP?

现在我正在这样做,但这对于可读性来说是不好的.

<?php

        if(something){
            ...
            echo <<< END      
                    This is a test.  I am writing this
                    text out.  
END; 
        } # end of if statment
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

<?php

        if(something){
            ...
            echo <<< END      
                    This is a test.  I am writing this
                    text out.  
            END; 
        } # end of if statment
Run Code Online (Sandbox Code Playgroud)

我知道bash有一种方法可以做到这一点(虽然我不记得它是什么),所以我想知道是否有可能在php中做.我不这么认为,但我想我会问.

The*_*zoo 7

正确格式化Heredoc语句是PHP的一个限制.这是一个解析器限制.正如文件所述:

请注意,具有结束标识符的行必须不包含其他字符,除了可能是分号(;)之外,这一点非常重要.这尤其意味着标识符可能没有缩进,并且在分号之前或之后可能没有任何空格或制表符.同样重要的是要认识到结束标识符之前的第一个字符必须是本地操作系统定义的换行符.这是在UNIX系统上的\n,包括Mac OS X.结束分隔符(可能后面跟一个分号)后面也必须跟一个换行符.

如果此规则被破坏且结束标识符不是"干净",则不会将其视为结束标识符,PHP将继续查找.如果在当前文件结束之前未找到正确的结束标识符,则将在最后一行产生解析错误.

目前尚不清楚这是否会在PHP的未来得到解决.