2013-02-14 73 views
0

我需要你的帮助来解决那些谁正在返回我的错误,这样的行情:PHP嵌套报价错误

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING

这里是我的代码:

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

您是如何知道错误是针对此行的? – 2013-02-14 11:33:07

+0

@Akram - 可能是因为该行无效PHP – 2013-02-14 11:34:03

+0

我知道该错误来自此行,因为如果发生此情况:解析错误:语法错误,意外的T_CONSTANT_ENCAPSED_STRING在D:\ inetpub \ wwwroot \ starter \ 2.0 \ web \ _inc \ php \ web.php在线855 – 2013-02-14 11:36:16

回答

1

请使用如下代码

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


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

I认为这是一个错字,你增加了一个额外的')' – sandip 2013-02-14 11:46:59

+0

谢谢Sandeep。根据你的建议编辑答案。 – 2013-02-14 11:48:04

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> "; 
} 

我希望它会帮助!

-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> '; 

还没出色的可读性,但很多比它更好了。

+0

我没有投票(不知道为什么这也是低票),但三元的needn '$'='bar'。$ bar === true?'!':'?'。'
';'完全有效:'[expression ]?[expression]:[expression]'是解析器正在查找的内容,这些部分可以不区分括号 – 2013-02-14 11:42:29

+0

@EliasVanOotegem - 我最近有几次'开车低调'。人们失望时会失望,但不愿意解释。重新说明一下,就我而言,关于它是主要字符串的一部分还是三元的假条件的一部分,末尾部分存在不明确性:'''。' > gen ..“是一个表达式,它也是三元组的一部分吗?但是,解析器是否存在问题在某种程度上是不相关的,因为代码在将来也需要对其进行读取。可读性=可维护性。 – SDC 2013-02-14 11:51:00