我喜欢HEREDOC语法,例如对于生成的HTML的极端情况,这些情况不值得放在模板中。

唯一令我烦恼的是,内容和heredoc字符串的结束标记粘附在第一列上。这会打乱嵌套的代码布局:

class myclass
 {

    function __construct()
      {
       $a = some_code();
       $b = some_more_code();
       $x = <<<EOT

line1
line2
line3
line4

EOT;

        $c = even_more_code();
        $b = still_more_code();
        ...
        ...
        ...

你明白我的意思。

现在,使用常规的HEREDOC可能无法解决此问题。有人解决过这个问题吗?我的梦想是拥有带有自动缩进的HEREDOC语法。但是我想如果不为源文件编写一些预编译器,这是不可能的。

我对么?

最佳答案

谢天谢地,此功能最终通过RFC进入了php 7.3:Flexible Heredoc and Nowdoc Syntaxes

因此,现在您的示例可以清楚地写为:

class myclass
{
    function __construct()
    {
        $a = some_code();
        $b = some_more_code();
        $x = <<<EOT

        line1
        line2
        line3
        line4

        EOT;

        $c = even_more_code();
        $b = still_more_code();
    }
}

关于php - HEREDOC干扰代码缩进,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2305869/

10-11 14:36