我编写了一个简单的脚本,使用同时构建的4个相等长度的数组以请求的顺序向用户显示内容,但由于某种原因,由此构建的内容字符串仅与数组中的最终项连接,而不管请求的数量。
这是导致问题的代码的一部分:
$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>";
不同内容类型的每个代码段都能正常工作,只是将这些值串联成一个不起作用的字符串。
两个外部的&#39; $ snippet&#39;出现的连接在输出中表示,并在循环中表示最终连接。
我已经花了好几个小时研究这个问题,并且无法弄清楚为什么只有最终项目被添加到字符串中。
我可能距离代码太近,因此无法看到我所犯的明显错误。
任何帮助都将不胜感激。
提前致谢。
答案 0 :(得分:2)
您在使用变量$
的所有地方都缺少$i
符号。
$type = $content_types[$i];
^
注意:在文件顶部添加error_reporting(E_ALL & E_STRICT);
,它会显示错误&amp;在这种情况下的通知。