0
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 语句之前,我的查询没有问题。

第一个回显输出预期的结果,但在 if 语句中“video”变为 NULL。我可以进入 if 语句并输出除 $video 之外的任何内容。

有人可以告诉上面的陈述出了什么问题或可能有问题吗?奇怪的。

4

3 回答 3

3

通常,人们忘记并使用=而不是==在比较中。它将条件设置为true,如果$video处于条件中,您可能会不小心将 设置$videonull

于 2012-10-22T03:03:02.330 回答
1

我不知道,但它可能是这样的。

它第一次回显 $video 但不进入if. 第二次它是 NULL 所以不回显任何东西,而是进入 if var_dumpsNULL

编辑

例如,放在echo '----';您的上方echo $video;以检查输出是否类似于

----
video text
----
Video of the Day
NULL

如果你有类似的东西

----
video text
Video of the Day
NULL

那么这对我来说完全是个谜。

于 2012-10-22T03:43:31.990 回答
1

(真的是评论,但添加代码所以放在这里)

调试方案一:增加报错;在此之前,添加

error_reporting(E_ALL);
ini_set('display_errors', 'on');

看看那会给你什么。

调试解决方案2:

可能是“编辑器插入了我看不到的奇怪字符”的情况。建议完全删除 if 语句中的行(选择整行,点击删除),以及引用 $video 的行,然后手动重新键入它们(不复制/粘贴)。隐藏的角色确实会发生——这是我能想到的唯一解决方案。

于 2012-10-22T04:56:05.550 回答