2011-06-02 131 views
0

我知道這是真的很明顯,但我只是不知道我失蹤。轉義字符串--PHP在html元素

$option[] = "<option value='user' selected=' " . ($row[5]=='admin') ? echo 'selected' : null. "'>user </option>";` 

感謝

+0

問題是什麼? – Stephen 2011-06-02 13:20:57

+1

什麼問題? '''不必在雙引號字符串中轉義。 – 2011-06-02 13:21:17

+0

我不斷收到一個解析錯誤 – dgamma3 2011-06-02 13:23:39

回答

2

試試這個:

從您的代碼
$option[] = '<option value="user" . ($row[5]=='admin' ? 'selected' : '') . '>user </option>';` 

三點區別:

  1. 我轉變了引號的使用......更容易包裝包含HTML單引號(因爲HTML使用PHP字符串雙引號)。
  2. 我修改了三元運算符的括號......它僅僅包含了條件,而不是真/假返回值。
  3. 在三元操作的「真實」返回值中,您調用了echo,這在串聯操作中不是必需的。
+0

真棒它的工作,但爲什麼你的工作不是我的?請解釋 – dgamma3 2011-06-02 13:25:12

+1

@ dgamma3:因爲你不能在那裏使用'echo'。 – 2011-06-02 13:26:31

+0

更新了我的答案,指出了區別。 – 2011-06-02 13:28:38

2

你不需要寫

value=\'user\' 

剛做的時候,你使用相同的引號一樣需要

value='user' 

轉義:

echo 'Mark\'s dinner'; 
0

對於初學者,我會分解它。另外,將雙引號換成單引號:

$option[] = implode('', array(
    '<option value="user" selected="', 
    $row[5] == 'admin' ? 'selected' : '', 
    '">user</option>' 
));