3

所以我使用 PHPExcel ( http://phpexcel.codeplex.com/ ) 来导入一个 Excel 表。在我的开发系统上一切正常,但在实时系统上却不太正常。

因此,我调试并查看了可能出现的问题。我发现一个方法显然返回 NULL,它应该返回一个对象。我查看了该方法,并var_dump()编辑了该方法中返回的 var。var 不是 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 的问题吗?

4

3 回答 3

1

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

于 2010-06-24T20:34:42.687 回答
0

我看不出发生这种情况的原因。除非你在做一些你没有向我们展示的有趣的事情,否则我看不出没有本机调试器如何检查这一点,例如,你可以在对象的内容上放置一个数据断点。

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

于 2010-06-24T17:44:23.890 回答
0

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

于 2010-06-24T17:48:26.143 回答