php - 函数内的nowdoc
问题描述
我有一些想要转换为函数的 PHP 代码。不幸的是,该代码使用 nowdoc 为 sprintf() 调用创建格式字符串。这带来了格式上的困境,因为这意味着我不能缩进结束标识符以匹配函数布局。nowdoc 是一个 HTML 片段,因此我可以删除所有换行符并将其视为一个简单的字符串变量,但这会使代码更难阅读。另一种方法是使用 nowdoc 在全局范围内创建格式字符串,并将生成的字符串传递给函数。有什么方法可以使用 nowdoc 并保持我的正常格式样式?
解决方案
正如我在评论中提到的,如果您想在两个页面上都保留格式,只需使用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;
}
推荐阅读
- python - 将下拉菜单添加到 bootstrap3 导航栏
- python - 从 Starlette 中的同步迭代器通过 websocket 发送数据
- node.js - 它将 --"name":null,"message":null.--- 存储在数据库中
- c# - 如何在控制台中创建登录名,我使用存储在文件 c# 中的用户名和密码进行身份验证
- javascript - 我怎样才能从对象链中获得两个对象长度
- ansible - 运行 win_command 任务时引用转义的问题
- python - 添加控件时碰撞检测不起作用
- amazon-web-services - 如何在不安装 AWS SDK 的情况下通过 Powershell 从 S3 下载文件?
- javascript - 控制台不编译nodejs
- ms-project - 如何使用 Aspose.Tasks 设置/获取基线的“上次保存时间”信息