当var很大时,return var不起作用?

时间:2010-06-24 17:34:52

标签: php memory codeplex phpexcel

所以我使用PHPExcel(http://phpexcel.codeplex.com/)导入Excel工作表。一切都在我的开发系统上工作正常,但它在现场系统上不起作用。

因此我调试并查看可能出错的地方。我到了一个点,我发现一个方法显然返回NULL,它应该返回一个对象。我查看了该方法,并var_dump()编辑了方法中返回的var。 var是非空的

PSEUDO CODE:

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的问题吗?

3 个答案:

答案 0 :(得分:1)

更高的内存限制似乎解决了这个问题!

答案 1 :(得分:0)

我认为没有理由发生这种情况。除非你做了一些有趣的事情,否则你没有向我们展示,我没有看到你如何在没有本机调试器的情况下检查它,例如,你可以在对象的内容上放置数据断点。

顺便说一下,你没有理由做$bar =& new Bar();而不是$bar = new Bar();(在PHP5中);事实上,前者已被弃用。

答案 2 :(得分:0)

如果返回的实际对象(在这种情况下是这样),PHP不应该关心返回值有多大。更明确的细节可能会有所帮助,因为您引用的示例应该没有问题......我对PHPExcel有一定的了解。你用的是什么版本?你回来了什么对象? (IIRC库中没有Foobar对象)你在使用任何内存缓存吗?