0

我需要您的帮助来修复那些向我返回错误的报价,例如:

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

这是我的代码:

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

3 回答 3

1

请使用以下代码

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


$HTML_footer.="<option value='general' $value>general</option> ";
于 2013-02-14T11:36:48.133 回答
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> ";
 }

我希望它会有所帮助!

于 2013-02-14T11:35:48.720 回答
-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> ';

仍然没有出色的可读性,但比以前好多了。

于 2013-02-14T11:37:50.020 回答