我使用PHP进行编程竞赛(糟糕的选择,我知道。但它是我唯一擅长的语言)。通常,当我创建一个非常大的变量时,PHP会返回一个空白页面。没有错误产生。
例如,如果我有这样的脚本:
<?php
echo 'test';
$var=array();
for($i=0;$i<9999999999;$i++){
$var[]=$i*9999999999;
}
不输出任何输出;甚至不是“测试”。
有没有办法阻止这种情况?
P.S。脚本通常会在大约2-3秒内快速终止。这让我认为PHP正在终止脚本而没有到达终点。
答案 0 :(得分: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
所有这一切都取决于你得到的错误,并从显示错误报告开始,这将有助于确定手头的真正问题。