PHP:使用Heredocs正确缩进

时间:2010-11-01 11:43:24

标签: php formatting coding-style indentation

我刚读过heredocs的思想php doucmentation,但我没有看到任何方法正确地使用代码。这可能在PHP?

现在我正在这样做,但这对可读性不利。

<?php

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

我想有这样的事情:

<?php

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

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

2 个答案:

答案 0 :(得分:7)

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

  

非常重要的是要注意到   具有结束标识符的行必须   不包含其他字符   可能是分号(;)。这意味着   特别是标识符可能不会   缩进,可能没有   在之前或之后的空格或制表符   分号。这也很重要   意识到第一个角色   在结束标识符之前必须   由本地定义的换行符   操作系统。这是UNIX上的\ n   系统,包括Mac OS X.   关闭分隔符(可能跟随   必须遵循分号   通过换行符。

     

如果违反此规则   而结束标识符不是   “干净”,它不会被认为是   关闭标识符,PHP将   继续寻找一个。如果合适的话   之前找不到关闭标识符   当前文件的结尾,一个解析   错误将在最后一行产生。

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

答案 1 :(得分:2)

AFAIK,这是不可能的,你需要关闭heredoc标识符而没有任何空格/制表符/缩进:(