我试图将$display定义为html行。这就是我目前所拥有的。
$display = '<input type="image" name="5more" value="5more" src="./pictures/fm/5more2.png" onmouseover="this.src='./pictures/fm/5more1.png'" onmouseout="this.src='./pictures/fm/5more2.png'">';
我不断收到此错误:解析错误:语法错误,结果中意外的"/".php在第 15 行。
请帮助我。
$display = <<<EOF
<input type="image" name="5more" value="5more" src="./pictures/fm/5more2.png" onmouseover="this.src='./pictures/fm/5more1.png'" onmouseout="this.src='./pictures/fm/5more2.png'">
EOF;
使用 Heredoc 语法,甚至不必担心转义(双)引号。
您需要转义字符串中的'
。
$display = '<input type="image" name="5more" value="5more"
src="./pictures/fm/5more2.png"
onmouseover="this.src=''./pictures/fm/5more1.png''"
onmouseout="this.src=''./pictures/fm/5more2.png''">';
或者当您用 '
引用字符串时,仅在字符串内使用 "
。
您需要转义其中的单引号。尝试使用这个:
$display = '<input type="image" name="5more" value="5more" src="./pictures/fm/5more2.png" onmouseover="this.src=''./pictures/fm/5more1.png''" onmouseout="this.src=''./pictures/fm/5more2.png''">';
字符串声明用 '
括起来。
$display = '...内容...';
这意味着字符串的开头以'
开头,以'
结尾。
您的字符串包括一系列双引号"
这很好,但是,您的变量还包括...
onmouseover="this.src='./pictures/fm/5more1.png'" onmouseout="this.src='./pictures/fm/5more2.png'"
图像声明前后'
的单引号是导致问题的原因。PHP 编译器将第一个单引号'
(就在第一个图像声明之前)视为字符串的末尾。
此问题的解决方案是转义字符串中的单引号。只需在每个引号之前添加一个'
即可。单引号将如下所示''
。
这是一个正确的声明
$display = '<input type="image" name="5more" value="5more" src="./pictures/fm/5more2.png" onmouseover="this.src=''./pictures/fm/5more1.png''" onmouseout="this.src=''./pictures/fm/5more2.png''">';
您需要转义上面提到的引号。但就可读性而言,即使它更冗长,这种设计方法也会节省一些痛苦。检查您的托管配置是否支持。
$urlOver = "./pictures/fm/5more1.png";
$urlOut = "./pictures/fm/5more2.png";
$onMouseover = "this.src='$urlOver'";
$onMouseout = "this.src='$urlOut'";
$display =
"<input type='image' name='5more' value='5more'
src='$urlOut'
onmouseover='$onMouseout'
onmouseout='$onMouseout'>";
附言:在引号("...")之间可以添加大括号如下: {$onMouseout}
$display = '<input type="image" name="5more" value="5more"
src="./pictures/fm/5more2.png" onmouseover="this.src=''./pictures/fm/5more1.png''"
onmouseout="this.src=''./pictures/fm/5more2.png''">';
您不能用单引号框住回声,也不能在其中使用单引号。这会破坏帧和输出。但是,如果你用'
转义内部单引号,你可以侥幸逃脱。在回显$display
变量时,您也可以使用addslashes
,例如 IF 和 ONLY 当您将内部单引号更改为双引号时。
echo addslashes($display);
你的内部报价会自动为你逃脱。