正如这个标题所说,我已经得到了以下一些代码,为了这个问题我已经减少了。内存耗尽显示:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 548 bytes) in C:\xampp\htdocs\whiterunway-migration\magento\lib\Zend\Db\Statement\Pdo.php on line 228
但我无法理解为什么。我在每次迭代时都会覆盖$ product变量。
$product_ids = Mage::getModel('catalog/product')->getCollection();
$products_out = [];
foreach ( $product_ids as $product_id ) {
$product = Mage::getModel('catalog/product')->load($product_id->getId());
$a = $product->getMetaTitle();
}
echo count($products_out);
我在这里看不到任何内存泄漏。
答案 0 :(得分:2)
内存耗尽,因为您正在将所有产品的对象加载到内存中。与行:
$product = Mage::getModel('catalog/product')->load($product_id->getId());
加载集合后不需要该行
此外:
$a = $product->getMetaTitle();
应该改为
$a =$product_id->getMetaTitle();