缺失报价某处T_STRING错误
问题描述:
这是推动我疯了,我知道它的一个简单的错误,但无论是我加或省掉了一个引号东西缺失报价某处T_STRING错误
echo "<option ". ($data['language'] == "" ? 'selected=selected>-- Select --</option>' : 'value=$data['language'] selected=selected'");
答
使用
echo "<option ". ($data['language'] == "" ? "selected=selected>-- Select --</option>" : "value=".$data['language']." selected=selected");
时出现不一致的使用引号/在线变量列入(所以是一个'哪里应该有一个“)
答
你不能用单引号做变量插值,特别是当使用单引号作为分隔符时。
echo "<option ". ($data['language'] == "" ? 'selected=selected>-- Select --</option>' : 'value=' . $data['language'] . ' selected=selected'");
答
变化:
'value=$data['language'] selected=selected'
分为:
'value="'.$data['language'].'" selected=selected'
答
echo "<option "
. ($data['language'] == ""
? 'selected=selected>-- Select --</option>' :
'value=$data['language'] selected=selected'" //< This line
);
你可以使用相同的报价从$ data数组选择你看到那么你需要做的:
echo "<option " . ($data['language'] == "") ? 'selected=selected>-- Select --</option>' : "value=\"" . $data['language'] . "\" \"selected=selected\"");
一个更好的解决办法是:
if($data['language'] == "")
{
echo '<option selected=selected>-- Select --</option>';
}else
{
echo '<option selected=selected value="' . $data['language'] . '">-- Select --</option>';
}
答
echo "<option ". ($data['language'] == "" ? "selected=selected>-- Select --</option>" : "value='".$data['language'] . "' selected=selected");
你需要转义嵌入的双引号(“)吗?我会这么想,但我不知道PHP。 – 2010-12-06 09:23:31
整个陈述没有意义。首先,一行135字符反对大多数编码惯例。在第一个表达式的周围还缺少一个右括号,并且第三个表达式中的插值也被打破。但即使您修复了这些内容并且有语言,您的选项标签也不完整。除非你使用XHTML中的HTML汤之一,否则你的属性周围也缺少引号。 – Gordon 2010-12-06 09:41:54