我使用PHP进行编程竞赛(我知道这是个糟糕的选择。但这是我唯一擅长的语言)。通常,当我创建一个非常大的变量时,PHP会返回一个空白页面。不会生成任何错误。
例如,如果我有一个这样的脚本:
<?php
echo 'test';
$var=array();
for($i=0;$i<9999999999;$i++){
$var[]=$i*9999999999;
}不会输出任何输出;甚至"test“也不会输出。
有没有办法防止这种情况发生?
附言:脚本通常会在大约2-3秒内快速终止。这使我认为PHP正在终止脚本,而不是到达结尾。
发布于 2012-02-28 12:30:19
更有可能的是你得到了一个
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
实际上,所有这些都取决于您得到的错误,并且从显示错误报告开始,这将有助于确定手头的真正问题是什么。
https://stackoverflow.com/questions/9476233
复制相似问题