2014-02-19 46 views
0

我寫了一個簡單的腳本來顯示內容給用戶請求的順序使用4個同等長度的數組並列,但由於某些原因,由此構建的內容字符串只是無論請求數量如何,都與數組中的最終項目連接。PHP - 字符串沒有正確連接迭代循環內

這是我的代碼,是造成這一問題的部分:

$snippet="<td id = \"content\">"; 
for($i=0;$i<count($content_types);$i++){ 
    $type = $content_types[i]; 
    if($type == "Video") 
    { 
     $pos_str = ((strlen($content_pos[i]) > 0) ? "class=\"".$content_pos[i]."\"" : ""); 
     $file_type = $content_file_types[i]; 
     $snippet .= "<video ".$pos_str." width=\"320\" height=\"240\" controls> 
          <source src=\"".$content[i]."\" type=\"video/".$file_type."\"> 
          Your browser does not support the video tag. 
         </video>"; 
    } 
    if($type == "Audio") 
    { 
     $pos_str = ((strlen($content_pos[i]) > 0) ? "class=\"".$content_pos[i]."\"" : ""); 
     $file_type = $content_file_types[i]; 
     $snippet .= "<audio ".$pos_str." controls> 
          <source src=\"".$content[i]."\" type=\"audio/".$file_type."\"> 
          Your browser does not support the audio tag. 
         </audio>"; 
    } 
    if($type == "Text") 
    { 
     $snippet .= "<p class=\"content_text\"> 
        ". urldecode($content[i]) ." 
       </p>"; 
    } 
    if($type == "Image") 
    { 
     $pos_str = ((strlen($content_pos[i]) > 0) ? "class=\"".$content_pos[i]."\"" : ""); 
     $snippet .= "<img src=\" 
        ".$content[i]." 
       \" ".$pos_str."></img>"; 
    } 
} 
$snippet .="</td>"; 

爲不同的內容類型每個代碼段工作正常,它只是這些值的串接成一個字符串,是不是運行。

發生的兩個外部'$ snippet'連接在循環中與最終連接一起在輸出中表示。

我一直在這個工作了幾個小時,一直沒能弄清楚爲什麼只有最後的項目被添加到字符串。

我可能只是太接近代碼,因此無法看到我所犯的明顯錯誤。

任何幫助,將不勝感激。

在此先感謝。

回答

2

您缺少$符號在所有您使用的變量$i

$type = $content_types[$i]; 
        ^

注:添加error_reporting(E_ALL & E_STRICT);上的文件的頂部,它會顯示你的錯誤在這種情況下&通知。

+0

就是這樣。非常感謝你。我知道這是我錯過的簡單事情。並感謝關於錯誤報告的建議。很有幫助。 – user3326473

+0

如果我的答案解決了您的問題,請點擊大複選框將其作爲答案。 – Rikesh

+0

對不起。這是我第一次在這裏發表問題,我不知道這是如何將問題標記爲已回答。再次感謝。 – user3326473