while ($row = mysql_fetch_array($results)) {
$results_array[$row['post_id']] = $row;
$arr = array($row[2] => $row[3]);
$location = trim($arr[cp_check_where_to_show_video]);
$video = trim($arr[cp_embed_video]);
echo $video;
if($location=='Video of the Day')
{
echo $location."\n";
echo "---";
echo $video;
echo "---";
}
}
Output:
Video Text
Video of the Day
-------
NULL
这就是事情。假设我有上面的代码,'视频'来自数据库。到目前为止,在我添加if语句之前,我对查询没有任何问题。
第一个echo输出预期结果,但在if语句中“video”变为NULL。我可以进入if语句并输出除$ video之外的任何内容。
有人可以告诉我们上面的陈述出了什么问题或者可能出错吗?怪异。
答案 0 :(得分:4)
在比较中,人们常常忘记并使用=
代替==
。它将条件设置为true
,如果$video
处于条件状态,则可能会意外将$video
设置为null
。
答案 1 :(得分:1)
我不知道,但它可能是这样的。
第一次回复$ video但没有进入if
。
第二次它是NULL,所以不会回显任何东西,而是进入if var_dumps
NULL
修改强>
例如,将echo '----';
放在echo $video;
上方以检查输出是否类似
----
video text
----
Video of the Day
NULL
如果您有类似
的内容----
video text
Video of the Day
NULL
那对我来说这是一个完全神秘的事。
答案 2 :(得分:1)
(真的是评论,但是添加代码以便放入这里)
调试解决方案1:添加错误报告;就在之前,添加
error_reporting(E_ALL);
ini_set('display_errors', 'on');
看看那给你的东西。
调试解决方案2:
可能是“编辑插入了我看不到的奇怪角色”的情况。建议完全删除if语句中的行(选择整行,点击删除),以及引用$ video的行,并手动重新键入它们(不复制/粘贴)。隐藏的角色确实发生了 - 这是我能想到的唯一解决方案。