PHP未定义变量,但print_r将结果输出到屏幕

时间:2011-10-31 22:38:19

标签: php debugging

有没有人知道这个问题可能是什么?

考虑以下代码:

127:  print_r($foo);
128:  if(isset($foo)){
129:   echo 'it has value';
130:  }else{
131:   echo 'foo is empty';
132:  }

打印到浏览器屏幕的结果是:

Array([key] => some value)
Notice: Undefined variable: foo in C:\wamp\www\test.php on line 127

是的,它在准确的行号上说明它输出的值非常相同 变量未定义,

在前面的代码行中,我实际上包含了一个我定义$ foo变量的文件。

所以在进一步调查中我设置了另一个print_r($ foo);在include中,在没有警告的情况下打印变量。

为什么会发生这种情况的任何线索,任何解决方法?

2 个答案:

答案 0 :(得分:3)

$ foo未定义。输出来自127之前的一行。

答案 1 :(得分:0)

您收到警告消息,因为print_r($foo);必须在if(isset($foo)){...范围内。 如果您未在$foo之前定义print_r,则无法输出任何内容。