Php 什么是;(试图分配16777216字节)“;什么意思?

Php 什么是;(试图分配16777216字节)“;什么意思?,php,memory-management,runtime-error,Php,Memory Management,Runtime Error,在这件事上我真的需要一些帮助。我的PHP程序(它有点大,所以我不能在这里全部显示)出现错误 致命错误:第81行/path/program.php中允许的内存大小为67108864字节(试图分配16777216字节) 从表面上看,这似乎是一个有效的错误,但我正在尝试这样做 $error=newmessage(); 在第81行,消息定义为 类消息{ 公共$pos=-1; 公共$severity=0; 公众$msg=“”; } 为什么这会导致分配16777216字节?我做错了什么?我怎样才能使内存

在这件事上我真的需要一些帮助。我的PHP程序(它有点大,所以我不能在这里全部显示)出现错误

致命错误:第81行/path/program.php中允许的内存大小为67108864字节(试图分配16777216字节)

从表面上看,这似乎是一个有效的错误,但我正在尝试这样做

$error=newmessage();
在第81行,消息定义为

类消息{
公共$pos=-1;
公共$severity=0;
公众$msg=“”;
}
为什么这会导致分配16777216字节?我做错了什么?我怎样才能使内存使用量降到合理的水平

我确实尝试过搜索,但我找到的关于巨大内存分配的文章中,只有那些试图分配如此大内存块的人!所以这没什么帮助


编辑:发现我的程序中有一个错误,导致创建了无限多的消息。但问题仍然没有得到回答,为什么它说它试图分配16777216字节,而一条消息只占用184字节?即使是链接问题的许多答案也没有解决这个问题。

正如您可以想象的那样,当PHP试图使用比可用内存更多的内存时,会出现此错误消息。我假设更改代码不是一个选项,但是可以增加PHP可用的内存量

要更改一个特定脚本的内存限制,请在脚本顶部包含一行,如下图所示:

ini_set("memory_limit","124M");
或者在php.ini中 您可以使用:

memory_limit = 124M

希望这有帮助

您已经将最大内存设置为64M,可能需要将其增加到128M。你也可以做一些事情来减少你的使用量。两个都做最好。“有些事情”你说?@AlisterBulman你有没有费心去理解这里的问题?这真的是正确完整的类定义吗?可能的重复不是问题的答案。这最多可能提供一个解决方法,但这是一个非常值得怀疑的方法。OP的问题是:为什么要分配这么大的内存。因此,我认为这可能是对这个问题的一个评论,但它不是一个答案。