函数中的nowdoc

时间:2018-08-11 19:05:11

标签: php nowdoc

我有一些想要转换为函数的PHP代码。不幸的是,代码使用nowdoc为sprintf()调用创建了格式字符串。这造成了格式难题,因为这意味着我无法缩进结束标识符以匹配函数布局。 nowdoc是HTML片段,因此我可以删除所有换行符并将其视为简单的字符串变量,但这会使代码更难阅读。 另一种方法是使用nowdoc在全局范围内创建格式字符串,并将结果字符串传递给函数。 有什么方法可以使用nowdoc并保持我的正常格式设置样式?

1 个答案:

答案 0 :(得分:0)

如我的评论中所述,如果要在两个页面上都保持格式,只需使用include()

/string.php

<?php
$str = <<<'EOD'
This is a string
EOD;
// This line after "EOD;" needs something on it or it may throw this error:
// Parse error: syntax error, unexpected end of file, expecting variable (T_VARIABLE) or heredoc end (T_END_HEREDOC) or ${ (T_DOLLAR_OPEN_CURLY_BRACES) or {$ (T_CURLY_OPEN)

/myfunction.php

<?php
function myfunction()
{
    # Include the nowdoc file
    include(__DIR__.'/string.php');
    # Return the string back
    return $str;
}