2013-02-14 80 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