2013-08-01 45 views
1

我有我設置爲一個HTML標籤一個變量(下下拉菜單):爲什麼我必須在由單引號括起來的字符串中雙引號?

$weapon_secondary = '<select name="weapon" class="dropdown"> 
<option>Option 1</option> 
<option>Option 2</option> 
</select>' 

運行我的PHP文件給我

解析錯誤:語法錯誤,意想不到的「武器」(T_STRING)在C:\ web \ submit_build.php on line 437

只要我轉義雙引號,解析器就可以正常工作。我認爲單引號中的字符串是「原樣」?此代碼工作得很好:

$weapon_secondary = '<select name=\"weapon\" class=\"dropdown\"> 
<option>Option 1</option> 
<option>Option 2</option> 
</select>' 

爲什麼我必須在單個單引號內跳過雙引號?

+0

你是正確的,你不應該逃避那些單內雙引號。必須有其他事情正在進行。那段代碼實際上是從你的文件中的437行嗎?周圍的代碼是什麼?相關的手冊頁:http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.single – matt

回答

0

看起來您在變量賦值的末尾缺少分號;

它應該是:

$weapon_secondary = '<select name="weapon" class="dropdown"> 
<option>Option 1</option> 
<option>Option 2</option> 
</select>'; 

您也可以使用heredoc來聲明一個變量並避免這種報價練習一種替代方案:

$weapon_secondary <<< EOF 
<select name="weapon" class="dropdown"> 
<option>Option 1</option> 
<option>Option 2</option> 
</select> 
EOF; 
+2

我相信提問者只是從發佈的代碼中省略它,因爲他提到將反斜槓添加到字符串可以解決問題。 – Crontab

+0

@Crontab:對不起,如果我誤解了這個問題,但在OP的例子中我沒有看到任何錯誤。 – anubhava

+1

該錯誤與我提供的代碼無關。 我在$ x =「...」的幾行上寫了一些東西 對不起傢伙! – SteelyDan

相關問題