2010-06-24 44 views
3

所以我使用PHPExcel(http://phpexcel.codeplex.com/)來導入一個Excel工作表。在我的開發系統中,一切正常,但它在現場系統上並不能正常工作。當var很大時,返回var不起作用?

因此,我調試,看看可能是錯的。我得到了一個點,我發現一個方法顯然返回NULL,它應該返回一個對象。我研究了該方法,並且編輯了在該方法中返回的var。該變種是NOT NULL

僞代碼:

class Bar() 
{ 
function methodInAClass() 
{ 
    $test = new Foobar; 
    [...] 
    /* $test was an object here with a lot of data (var_dump() 
    * took around 100.000 lines in an editor) */ 
    var_dump($test); 
    return $test; 
} 
} 

$bar =& new Bar(); 
$test2 = $bar->methodInAClass(); //$test2 is NULL here 

我在做什麼錯?這是一個來自php.ini的問題嗎?

回答

0

我認爲沒有理由發生這種情況。除非你在做一些有趣的事情,而沒有向我們展示,否則我不知道如何在沒有本地調試器的情況下進行檢查,例如,可以在對象的內容上放置數據斷點。

順便說一下,沒有理由你應該做$bar =& new Bar();而不是$bar = new Bar();(在PHP5中)。實際上,前者已被棄用。

+0

我認爲你的意思是反過來,不是嗎? *沒有理由你應該做$ bar = **&** new Bar();而不是$ bar = new Bar(); * – 2010-06-24 17:54:33

+0

@Fel yes;我修好了,謝謝。 – Artefacto 2010-06-24 17:56:20

0

如果返回的值是實際返回值(因爲它是在這種情況下),PHP不應該關心返回值有多大。更明確的細節可能會有幫助,因爲你引用的例子應該沒​​有問題......我對PHPExcel有一些熟悉。你使用什麼版本?你要返回什麼對象? (IIRC庫中沒有Foobar對象)您是否使用任何內存緩存?

1

更高的內存限制似乎解決了問題!

+0

這聽起來像一個錯誤,說實話。如果這是因爲內存不足,那麼你應該得到一個錯誤而不是損壞的數據。嘗試向http://bugs.php.net提交錯誤 – 2010-06-24 20:36:25