2010-01-04 122 views
0

我有以下代码:奇怪的PHP错误

var_dump($cumulitive); 
    $y_axis_max = max($cumulitive)*1.3; 
    var_dump($y_axis_max); 

它输出以下:

array(16) { 
    [0]=> 
    int(0) 
    [1]=> 
    int(0) 
    [2]=> 
    int(0) 
    [3]=> 
    int(0) 
    [4]=> 
    int(0) 
    [5]=> 
    int(0) 
    [6]=> 
    int(0) 
    [7]=> 
    int(0) 
    [8]=> 
    int(0) 
    [9]=> 
    int(0) 
    [10]=> 
    int(0) 
    [11]=> 
    int(4) 
    [12]=> 
    int(4) 
    [13]=> 
    int(4) 
    [14]=> 
    int(9) 
    [15]=> 
    int(9) 
} 
float(NAN) 

正如你可以看到,$ y_axis_max是给NAN。所以我试试这个:我重新启动WampServer。它现在有效。我刷新浏览器。再次工作。再次刷新浏览器。现在它不起作用,我无法在不重新启动Apache的情况下再次运行它。从它的第三个请求停止工作。

它使用工作得很好。然后我改变了一些东西。具体来说,我修改了我的应用程序以在几个地方使用DateTime类。但是,这不应该让这个奇怪的错误发生。有关如何调试的任何想法?

如果我连续调用的代码$ y_axis_max = ..线两次,然后我得到这个为$ y_axis_max:

float(@.7) 

到底是什么呢?

编辑:似乎早期调用DateTime :: diff会导致错误。任何解决方法的想法?

回答

1

似乎早期调用DateTime :: diff会导致错误。我只是使用了一个解决方法,所以不使用它。

1

max()将在数组上工作。看起来你的代码中存在某种形式的腐败。如果数组中的其中一个元素是NAN,则会得到此结果。尝试在服务器上测试较小的脚本以隔离问题。

+0

似乎早期调用DateTime :: diff会导致错误。很奇怪 – Jonah 2010-01-04 08:22:36