return var не работает, когда var огромен? - PullRequest
3 голосов
/ 24 июня 2010

Поэтому я использую PHPExcel (http://phpexcel.codeplex.com/) для импорта листа Excel. Все отлично работает в моей системе разработки, НО не совсем работает в реальной системе.

Поэтому я отлаживал и смотрел, что может быть не так. Я дошел до того, что обнаружил, что метод, очевидно, возвратил NULL, где он должен был вернуть объект. Я посмотрел на этот метод и var_dump() редактировал переменную, которая была возвращена в методе. переменная была НЕ NULL

КОД PSEUDO:

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 ]

1 голос
/ 25 июня 2010

Похоже, что более высокий предел памяти устранил проблему!

0 голосов
/ 24 июня 2010

PHP не должно волновать, насколько велико возвращаемое значение, если это реальный возвращаемый объект (как в данном случае). Могут помочь более подробные детали, потому что ваш приведенный пример должен работать без проблем ... У меня есть некоторое знакомство с PHPExcel. Какую версию ты используешь? Какой объект вы возвращаете? (IIRC нет объекта Foobar в библиотеке) Используете ли вы кеширование памяти?

0 голосов
/ 24 июня 2010

Я не вижу причин для этого.Если вы не делаете что-то смешное, вы не показываете нам, я не понимаю, как вы могли бы проверить это без встроенного отладчика, где вы могли бы, например, поставить точку останова данных на содержимое объекта.*

И, кстати, нет причин, по которым вы должны делать $bar =& new Bar(); вместо $bar = new Bar(); (в PHP5);на самом деле, первая устарела.

...