我遇到了一个特殊版本的PHP语法,我以前几次都不知道它,它开始在我身上发展。我们的大部分框架使用echo
来构建页面,而不是使用PHP标记(<?php
和?>
)不断打开和关闭;但是,在输出小脚本和HTML属性时,这会非常令人沮丧,因为我们需要注意如何逃避事情,导致这样的段:
echo ("<form action='$formurl' id='testForm$num' class='hor-form'>" .
" <script>" .
" $('#txtInput').clear();" .
" if (true) {" .
" $('#errorMessage').html('<input type=\"text\" id=\"test\">');" .
" }" .
" </script>" .
" <input id='txtInput' type='text' />" .
" <input id='btnSubmit' type='submit' value='Submit' />" .
"</form>"
);
显然这绝对是假的,但希望得到重点。我不是在宣传它是如何完成的,而是它的本质。最近,我开始以这种方式看待它:
echo<<<HTML
<form action="$formurl" id="textForm$num" class="hor-form">
<script>
$("#txtInput").clear();
if (true) {
$("#errorMessage").html("<input type='text' id='text'>");
}
</script>
<input id="txtInput" type="text">
<input id="btnSubmit" type="submit" value="Submit">
</form>
HTML;
语法如下:
echo<<<RANDOM_NAME
//HTML code, possibly other syntaxes as well but likely not
RANDOM_NAME;
它绝对好得多,因为它实际上提供了正确的语法突出显示并且不再需要转义引号/附加字符串!唯一的问题是我在任何地方都找不到任何文档!。可能是我不知道要搜索什么,实际上我不知道,但我只找到了涉及它的任何内容,我再也找不到它了。
我有很多关于它的问题(比如我可以使用其中的PHP函数,或者我可以使用哪些类型的变量等),但无处可寻求解决方案。另外,除了直接使用echo
之外,我还能做些什么吗?例如,我可以使用变量而不是echo
吗?如果是这样,怎么样?
如果有人能够启发我会很棒!