2009-12-26 30 views
0
echo '<option value='+$index+'>'+$county[$index]; 

這是PHP代碼。它不會輸出我想要的內容。任何想法?

+0

如果您必須提出這個基本問題,您不應該在StackOverflow上,請閱讀任何PHP教程或網站的第一章。 – TravisO 2009-12-26 08:22:25

+2

特拉維斯:也許你應該回答他,幷包含適當的PHP教程和網站的鏈接。 – 2009-12-26 08:30:25

回答

3

在PHP連接文本使用.操作不是+

echo '<option value='.$index.'>'.$county[$index]; 

你可以閱讀更多關於..=運營商,如果你想:String Operators

1

試試這個:

echo '<option value=' . $index . '>' . $county[$index]; 

你甚至可以這樣做:

echo "<option value={$index}>{$county[$index]}"; 
0

二者必選其一:

echo '<option value=' . $index+'>' . $county[$index]; 

echo "<option value='$index'>$county[$index]"; 
0
echo '<option value="', $index, '">', $country[$index]; 
echo "<option value='$index'>$country[$index]"; 
printf('<option value="%s">%s', $index, $country[$index]); 

還有其他的,其他方式(sprintf和呼應,用於一個)完成同樣的事情。
請選擇。

就個人而言,我會使用第一個示例,因爲echo需要多個參數。

0

隨着echo聲明與PHP中的其他內容不同,您還可以使用,進行並置。據說它比.

echo '<option value=' , $index , '>' , $county[$index]; 
+0

逗號(,)不連接。回聲是一種語言結構,這就是爲什麼你不(通常)使用括號。這將類似於使用:echo($ first,$ second,$ third)。如果你想傳遞多個參數來回顯,你必須不使用括號。 – 2009-12-26 07:37:18

+0

沒錯,我想我應該更具體一點,因爲每個部分都是真正的回聲,而不是回聲,實際上將聲明的每個部分連接到前一部分的結尾。但是,它確實實現了同樣的效果並且速度更快 – munch 2009-12-26 08:07:39

0

除了連接符是.快... PHP是一種模板語言。使用它,不要戰鬥!避免在字符串中處理HTML;讓PHP自己做到這一點。

而當您輸出任意文本時,請記住要HTML轉義它,以避免跨站點腳本問題。例如:

<?php 
    function h($s) { 
     echo htmlspecialchars($s, ENT_QUOTES); 
    } 
?> 
... 

<select name="county"> 
    <?php for ($i= 0; $i<count($county); $i++) { ?> 
     <option value="<?php h($i); ?>"> 
      <?php h($county[$i]); ?> 
     </option> 
    <?php } ?> 
</select>