2012-02-28 87 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 2012-02-28 04:09:46

+1

您可能已达到'max_execution_time'。根据输出缓冲的配置方式,你可能看不到'test' – 2012-02-28 04:10:03

+0

对于你的脚本,我看到'test'输出(我在控制台中运行它),之后php进行思考。比赛脚本绝对没有理由在浏览器中运行 – zerkms 2012-02-28 04:11:08

回答

3

更可能你得到一个

Fatal error: Allowed memory size of 134217728 bytes exhausted 

有可以做改变这种以及显示错误的几件事情。一种方法是更改​​php.ini文件中的错误报告或添加

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

位于代码顶部。第二个是增加允许的大小。

您正在使用大量内存来尝试多次乘以这么大的一个数字。你试图这样做的原因是什么?有没有不同的方式可以做同样的事情?

这里有一些资源可以使用

加大尺码http://www.mydigitallife.info/php-allowed-memory-size-exchausted-fatal-error/

错误报告http://php.net/manual/en/function.error-reporting.php

如果你不需要我去高(9999999999)似乎非常高。减小尺寸。

你可能有另一个问题是

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

真的这一切都取决于你做了什么错误,并通过显示错误报告开始,这将有助于确定哪些手头真正的问题。

相关问题