3

そのため、PHPExcel ( http://phpexcel.codeplex.com/ ) を使用して Excel シートをインポートしています。私の開発システムではすべて正常に動作しますが、ライブ システムではまったく動作しません。

したがって、私はデバッグして、何が間違っているのかを調べました。メソッドが明らかに NULL を返していることがわかりましたが、オブジェクトを返す必要がありました。そのメソッドを調べて、メソッドでvar_dump()返された var を編集しました。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 に起因する問題ですか?

4

3 に答える 3

1

より高いメモリ制限で問題が解決したようです。

于 2010-06-24T20:34:42.687 に答える
0

PHP は、返される値が実際のオブジェクトである場合 (この場合のように)、返される値の大きさを気にする必要はありません。引用された例は問題なく動作するはずなので、より明確な詳細が役立つかもしれません...私はPHPExcelにある程度精通しています。どのバージョンを使用していますか? どのオブジェクトを返しますか? (IIRC ライブラリに Foobar オブジェクトはありません) メモリ キャッシュを使用していますか?

于 2010-06-24T17:48:26.143 に答える
0

これが起こる理由はわかりません。あなたが私たちに見せていない面白いことをしていない限り、たとえば、オブジェクトの内容にデータブレークポイントを設定するなど、ネイティブデバッガーなしでこれをチェックアウトする方法がわかりません.

$bar =& new Bar();ところで、代わりに$bar = new Bar();(PHP5 で)を実行する理由はありません。実際、前者は非推奨です。

于 2010-06-24T17:44:23.890 に答える