php嵌套引号错误

时间:2013-02-14 11:32:03

标签: php nested quotes

我需要你的帮助来修复那些给我回复错误的报价:

  

解析错误:语法错误,意外T_CONSTANT_ENCAPSED_STRING

这是我的代码:

$HTML_footer.='<option value="general" '($sr && ! $cf['form_ok'] && $cf['posted_form_data']['enquiry'== 'Ventes']) ? "selected='selected'" : ''  '>general</option> ';

3 个答案:

答案 0 :(得分:1)

请使用以下代码

$value = "";
if($sr && ! $cf['form_ok'] && $cf['posted_form_data']['enquiry'== 'Ventes']){
$value = "selected='selected'";
}


$HTML_footer.="<option value='general' $value>general</option> ";

答案 1 :(得分:0)

T_CONSTANT_ENCAPSED_STRING解析器令牌错误是由于意外引用 - 或缺少引用。首先检查条件是否满足,然后以这种方式选择:

 if ( $sr && (!$cf['form_ok']) && ($cf['posted_form_data']['enquiry' == 'Ventes'])) {
    $HTML_footer = "<option value='general' selected='selected'>general</option> ";
 }

我希望它会有所帮助!

答案 2 :(得分:-1)

你错过了你想要加入的各种字符串之间的点。 PHP使用点作为运算符来连接字符串。

此外,三元运算符需要括在括号中以防止其含糊不清。

通过这些更正,您的代码行现在看起来像这样:

$HTML_footer.='<option value="general" ' . (($sr && ! $cf['form_ok'] && $cf['posted_form_data']['enquiry'== 'Ventes']) ? "selected='selected'" : '') . '>general</option> ';

但建议:尝试将三元运算符从字符串中移到单独的代码行中。它会更具可读性:

$isSelected = ($sr && ! $cf['form_ok'] && $cf['posted_form_data']['enquiry'== 'Ventes']);
$selected = $isSelected ? "selected='selected'" : '';
$HTML_footer.='<option value="general" '.$selected.'>general</option> ';

仍然没有出色的可读性,但比它好很多。