PHP致命错误:已耗尽268435456字节的允许内存大小
单击名为Test的类别时,我遇到以下错误 在标准中发送的FastCGI: PHP消息:PHP致命错误:允许的内存大小为268435456字节,在从上游读取响应头时,尝试在第736行的/home/mydomain/public_html/app/functions/fn.catalog.PHP中分配32字节,客户端:24.xx.xx,服务器:www.mydomain.com,请求:GET/test-page-313/HTTP/1.1,上游:fastcgi://127.0.0.1:9000,主持人:www.mydomain.com,推荐人: 我的736线路如下 在我的php.ini中,我已经将内存限制增加到=1GPHP致命错误:已耗尽268435456字节的允许内存大小,php,Php,单击名为Test的类别时,我遇到以下错误 在标准中发送的FastCGI: PHP消息:PHP致命错误:允许的内存大小为268435456字节,在从上游读取响应头时,尝试在第736行的/home/mydomain/public_html/app/functions/fn.catalog.PHP中分配32字节,客户端:24.xx.xx,服务器:www.mydomain.com,请求:GET/test-page-313/HTTP/1.1,上游:fastcgi://127.0.0.1:9000,主持人:
有几种可能性: $product['qty\U step']不包含数字 循环中有两个多步骤,使程序在$qty\U内容数组中创建多个条目。 例如,如果您有:
$min_qty = 0;
$max_qty = 400000;
$product = array("qty_step" => 0.001);
$qty_content = [];
// The loop
for ($qty = $min_qty; $qty <= $max_qty; $qty += $product['qty_step']) {
$qty_content[] = $qty;
}
看看你能得到什么。在所有情况下,此错误都意味着您占用了太多内存,因此必须通过增加$product['qty\U step']或减少$min\U qty和$max\U qty之间的差异来减少循环的迭代次数。那么$max\U qty或$qty在该循环中是如何变化的?在什么时候您会达到结束条件?可能是0或未定义-$qty+=$product['qty\U step']。调试步骤1:找出代码使用的值。回声是一种方式。您可能没有错误检查值,这是错误的。如上所述,您可以执行以下操作:打印\$min\u数量=“$min\u数量”\$max\u数量=“$max\u数量”\$product['qty\u步骤]=$product['qty\u步骤];更改ini设置后是否重新启动了web服务器?请编辑问题以在for循环之前包含$min\u qty、$max\u qty和$product['qty\u step']的值。没有这些,这里就没有足够的信息来确定确切的问题。
$min_qty = 0;
$max_qty = 400000;
$product = array("qty_step" => 0.001);
$qty_content = [];
// The loop
for ($qty = $min_qty; $qty <= $max_qty; $qty += $product['qty_step']) {
$qty_content[] = $qty;
}
var_dump(
array('qty' => $qty,
'min_qty' => $min_qty,
'max_qty' => $max_qty,
'product["qty_step"]' => $product['qty_step'])
);