我刚读过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中做。我不这么认为,但我想我会问。
答案 0 :(得分:7)
正确格式化Heredoc语句是PHP的一个限制。这是一个解析器限制。正如文档所述:
非常重要的是要注意到 具有结束标识符的行必须 不包含其他字符 可能是分号(;)。这意味着 特别是标识符可能不会 缩进,可能没有 在之前或之后的空格或制表符 分号。这也很重要 意识到第一个角色 在结束标识符之前必须 由本地定义的换行符 操作系统。这是UNIX上的\ n 系统,包括Mac OS X. 关闭分隔符(可能跟随 必须遵循分号 通过换行符。
如果违反此规则 而结束标识符不是 “干净”,它不会被认为是 关闭标识符,PHP将 继续寻找一个。如果合适的话 之前找不到关闭标识符 当前文件的结尾,一个解析 错误将在最后一行产生。
目前尚不清楚这是否会在PHP的未来得到解决。
答案 1 :(得分:2)
AFAIK,这是不可能的,你需要关闭heredoc标识符而没有任何空格/制表符/缩进:(