变量在IF语句中变为NULL

时间:2012-10-22 02:58:22

标签: php

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之外的任何内容。

有人可以告诉我们上面的陈述出了什么问题或者可能出错吗?怪异。

3 个答案:

答案 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的行,并手动重新键入它们(不复制/粘贴)。隐藏的角色确实发生了 - 这是我能想到的唯一解决方案。