对变量错误的PHP heredoc赋值

对变量错误的PHP heredoc赋值,php,Php,我有以下代码通过使用herdoc的变量显示表单。我得到以下错误 分析错误:语法错误,意外的“”(T_封装了_和_空格), 应为标识符(T_字符串)或变量(T_变量)或数字 (T_NUM_STRING)在C:\xampp\htdocs\PHP\2000.PHP的第38行 第38行是: 因为;在EOB之前有空格(结束标识符)为其中4个移除它们。 根据heredoc上的手册: 警告 请务必注意,具有结束标识符的行不能包含除分号(;)以外的任何其他字符。这特别意味着标识符不能缩进,分号前后不能有空

我有以下代码通过使用herdoc的变量显示表单。我得到以下错误

分析错误:语法错误,意外的“”(T_封装了_和_空格), 应为标识符(T_字符串)或变量(T_变量)或数字 (T_NUM_STRING)在C:\xampp\htdocs\PHP\2000.PHP的第38行

第38行是:


因为;在
EOB之前有空格(结束标识符)为其中4个移除它们。

根据heredoc上的手册:

警告

请务必注意,具有结束标识符的行不能包含除分号(;)以外的任何其他字符。这特别意味着标识符不能缩进,分号前后不能有空格或制表符。认识到结束标识符之前的第一个字符必须是本地操作系统定义的换行符,这一点也很重要。这在UNIX系统(包括Mac OS X)上是\n。结束分隔符后面还必须跟一个换行符

如果这个规则被打破,并且结束标识符不是“干净的”,它将不会被认为是结束标识符,PHP将继续寻找一个。如果在当前文件结尾之前未找到正确的结束标识符,则在最后一行将导致分析错误

Heredocs不能用于初始化类属性。由于PHP5.3,此限制仅对包含变量的heredocs有效

示例#1无效示例

<?php
class foo {
    public $bar = <<<EOT
bar
    EOT;
}
?>

您也没有关闭

action=“$\u服务器['PHP\u SELF']”
需要读为
action=“
,这相当于只执行
action=“
,这是您需要在此处使用的操作,
action=“

如果您确实想/必须使用该语法,可以使用支撑方法
action=“{$\u SERVER['PHP\u SELF']}”

“为什么我不能像这样使用操作属性?
action=”“

如果使用的实际引号是卷曲引号
”,则需要将这些引号更改为常规双引号
”,这将导致分析错误

但是,需要删除


脚注:

我注意到
,这说明您正在将脚本用作订阅站点

在许多国家,将单选按钮设置为默认值“Yes,subscribe me”是非法的,就像在加拿大一样

禁止将其作为默认值(已选择),用户需要自己选择它,而不是为他们选择您。

  • 你应该意识到这一点,这类行为将面临巨额罚款/后果

默认情况下取消选中它,或者只使用一个未选中的复选框(让他们选中它)并对其使用条件语句。

好的,先生,一切都很清楚。我解决了问题。只有一个问题。@AmaliPerera中需要读作
action=“
的所有内容,还是只需设置为
action=”“
它做同样的事情。不客气。顺便说一句,我已经测试过了,你没有关闭一个
@AmaliPerera如果你没有看到我写的关于这个动作和其他一些事情的内容,你可能需要重新加载我的答案。@AmaliPerera只需使用
action=“”
,它就会工作。您还可以使用bracking
action=“{$\u SERVER['PHP\u SELF']}”
<?php
class foo {
    public $bar = <<<EOT
bar
    EOT;
}
?>