【问题标题】:strange php error奇怪的php错误
【发布时间】:2010-01-04 08:01:13
【问题描述】:

我有以下代码:

    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 会导致错误。有什么解决办法吗?

【问题讨论】:

    标签: php wampserver


    【解决方案1】:

    max() 将适用于数组。看起来您的代码中有某种形式的损坏。如果数组中的元素之一是 NAN,您将得到此结果。尝试在您的服务器上测试一个较小的脚本以隔离问题。

    【讨论】:

    • 似乎早先调用 DateTime::diff 会导致错误。很奇怪
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2011-05-17
      • 1970-01-01
      • 2012-08-28
      • 2012-06-12
      • 2011-07-23
      • 2012-03-23
      • 2016-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多