【问题标题】:PHP: Using Proper Indentation with Heredocs [duplicate]PHP:在 Heredocs 中使用正确的缩进 [重复]
【发布时间】:2011-05-03 09:14:03
【问题描述】:

我刚刚阅读了 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.ini 中做到这一点。我不这么认为,但我想我会问。

【问题讨论】:

标签: php formatting coding-style indentation


【解决方案1】:

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

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

如果这条规则被打破 并且结束标识符不是 “干净”,它不会被视为 关闭标识符,PHP 将 继续找一个。如果一个适当的 之前未找到关闭标识符 当前文件的结尾,一个解析 错误将出现在最后一行。

不知道这是否会在 PHP 的未来得到解决。

【讨论】:

【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2021-12-02
    • 1970-01-01
    • 2011-05-29
    • 2017-07-19
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    相关资源
    最近更新 更多