未定义的变量?但我定义了它

时间:2010-04-27 03:44:38

标签: php variables

之前有人声称这是一个重复的问题......(我注意到那些无法回答问题的人会跑去寻找副本,然后报告。)

以下是您要查找的副本: php claims my defined variable is undefined

然而,这并不完全重复。它给了我一个解决方案,但我并不是真的在寻找这个特定的解决方案。

这是我的问题:

Notice: Undefined variable: custom

现在这是我的代码:

                $headers = apache_request_headers(); // Request the visitor's headers.
                $customheader = "Header: 7ddb6ffab28bb675215a7d6e31cfc759"; //This is what the header should be.
                        foreach ($headers as $header => $value) { 
                                $custom .= "$header: $value"; 
}

显然,定义了$ custom。根据另一个问题,它是一个全球性的,应该标记为一个。但它如何成为一个全球性的?我怎样才能成为(非全球)?该脚本工作正常,它仍然显示它应该和正确的行为,但当我打开错误消息时,它只是输出该通知。我想它目前还没有必要的来解决它,但我还是想知道为什么会这样做。

2 个答案:

答案 0 :(得分:5)

问题在于:

$custom .= "$header: $value"; 

您要附加$ custom,但在第一次循环运行之前,$ custom中的值是未定义的。

在循环之前加上$custom = '';,错误就会消失。

答案 1 :(得分:1)

我没有看到$custom的初始定义 - 我看到你连接到它,但你永远不会给它一个初始值。

在foreach循环之前插入一行$custom = '';