2014-02-19 42 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