2010-12-06 80 views
1

這是推動我瘋了,我知道它的一個簡單的錯誤,但無論是我加或省掉了一個引號東西缺失報價某處T_STRING錯誤

echo "<option ". ($data['language'] == "" ? 'selected=selected>-- Select --</option>' : 'value=$data['language'] selected=selected'"); 
+0

你需要轉義嵌入的雙引號(「)嗎?我會這麼想,但我不知道PHP。 – 2010-12-06 09:23:31

+0

整個陳述沒有意義。首先,一行135字符反對大多數編碼慣例。在第一個表達式的周圍還缺少一個右括號,並且第三個表達式中的插值也被打破。但即使您修復了這些內容並且有語言,您的選項標籤也不完整。除非你使用XHTML中的HTML湯之一,否則你的屬性周圍也缺少引號。 – Gordon 2010-12-06 09:41:54

回答

3

使用

echo "<option ". ($data['language'] == "" ? "selected=selected>-- Select --</option>" : "value=".$data['language']." selected=selected"); 

時出現不一致的使用引號/在線變量列入(所以是一個'哪裏應該有一個「)

1

你不能用單引號做變量插值,特別是當使用單引號作爲分隔符時。

echo "<option ". ($data['language'] == "" ? 'selected=selected>-- Select --</option>' : 'value=' . $data['language'] . ' selected=selected'"); 
1

變化:

'value=$data['language'] selected=selected' 

分爲:

'value="'.$data['language'].'" selected=selected' 
0
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>'; 
} 
0
echo "<option ". ($data['language'] == "" ? "selected=selected>-- Select --</option>" : "value='".$data['language'] . "' selected=selected");