2012-02-28 9 views
1

私はプログラミングコンテストにPHPを使用しています(悪い選択、私は知っていますが、それは私がよくしている唯一の言語です)。多くの場合、非常に大きな変数を作成すると、PHPは空白のページを返します。エラーは生成されません。例えばPHPは時々エラーのない空白のページを返すのですか?

、私はこのようなスクリプトを持っている場合:

<?php 
echo 'test'; 

$var=array(); 
for($i=0;$i<9999999999;$i++){ 
    $var[]=$i*9999999999; 
} 

ませ出力が出力されないであろう。 "テスト"さえできません。

これを防ぐ方法はありますか?

P.S.スクリプトは通常、約2〜3秒で短時間で終了します。 PHPが終わりに達することなくスクリプトを終了させて​​いると私は思う。

+1

エラー報告は有効になっていますか? – jprofitt

+1

あなたは 'max_execution_time'に達している可能性があります。出力バッファリングの設定によっては、 'test'が表示されない場合があります。 –

+0

スクリプトの場合、' test'出力(コンソールで実行します)が表示され、その後phpが考えています。コンテストスクリプトがブラウザで実行される理由は全くありません – zerkms

答えて

3

もっと可能性の高いあなたが

Fatal error: Allowed memory size of 134217728 bytes exhausted 

を得ているよりも、これを変更するだけでなく、エラーを表示するように行うことができますがいくつかあります。 1つは、php.iniファイルのエラー報告を変更するか、コードの先頭に

error_reporting(E_ALL); 
ini_set("display_errors", 1); 

を追加することです。 2番目は許容サイズを大きくすることです。

この大きな数値に何度も乗算しようとすると、多くのメモリを使用しています。あなたがこれをやろうとしている理由は何ですか?あなたは同じことをすることができるかもしれない別の方法はありますか?ここで

はあなたが(9999999999)高は本当に高いと思われることを行くために私を必要としない場合http://php.net/manual/en/function.error-reporting.php

を報告サイズhttp://www.mydigitallife.info/php-allowed-memory-size-exchausted-fatal-error/

エラーを高めるために

を使用することができ、いくつかのリソースです。サイズを小さくする。あなたがいる可能性があり

もう一つの問題は、あなたがしなければならない場合、あなたは常に実行時間を増やすことができます

Fatal error: Maximum execution time of 60 seconds exceeded 

です。

最大実行時間http://php.net/manual/en/function.set-time-limit.php

Increase max execution time for php

本当にこのすべては、あなたが取得していると、エラー報告を示すとともに開始することで、これは手元の本当の問題が何であるかを判断するのに役立ちますどのようなエラーに依存します。

関連する問題