我得到了代码
$confirm = "if (!confirm('".Module::t("Approve") . "?')) return false;";
$js_approve =<<< EOD
function() {
$confirm
var url = $(this).attr('href');
$.post(url, function(response) {
alert(response);
});
return false;
}
EOD;
是否可以转换为这样的代码
$js_approve =<<< EOD
function() {
"if (!confirm('".Module::t("Approve") . "?')) return false;";
var url = $(this).attr('href');
$.post(url, function(response) {
alert(response);
});
return false;
}
EOD;
有什么想法吗?
除了你不能缩进,你也不能写这一行
"if (!confirm('".Module::t("Approve") . "?')) return false;";
在赫雷多克内部。
不,不是。您不能对 heredoc 字符串使用缩进。
您应该阅读此页面上的警告:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
为了防止 PHP 解析文本,请使用 nowdoc 语法(从 PHP 5.3.0 开始)
从 PHP 文档中的这一部分:
请务必注意,带有结束标识符的行不得包含其他字符,但可能的分号 (;)除外。这尤其意味着标识符不能缩进,分号前后不能有任何空格或制表符。还必须认识到,结束标识符之前的第一个字符必须是本地操作系统定义的换行符。这在 UNIX 系统(包括 Mac OS X)上是 '。结束分隔符(可能后跟分号)也必须后跟换行符。
它说标识符不能缩进。我喜欢保持我的缩进干净,你可以像往常一样继续,但你唯一需要注意的是,结束EOD;
在该行之前没有其他字符(即,它必须有一个前面的换行符)。除此之外,一切都会按照您期望的方式进行。
以您的代码为例:
$js批准 =<<会正常工作