2010-01-04 83 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