Php 如何使此代码更短更好
如何清理和改进以下“零碎”php代码:Php 如何使此代码更短更好,php,magento,magento-1.9,Php,Magento,Magento 1.9,如何清理和改进以下“零碎”php代码: <?php error_reporting(E_ALL); require_once('app/Mage.php'); Mage::init(); Mage::getSingleton("core/session", array("name" => "frontend")); $productList = array( array(), array(), array() ); $count = Mage::getSin
<?php
error_reporting(E_ALL);
require_once('app/Mage.php');
Mage::init();
Mage::getSingleton("core/session", array("name" => "frontend"));
$productList = array(
array(),
array(),
array()
);
$count = Mage::getSingleton('checkout/session')->getQuote()->getItemsQty();
$cart = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();
$name = array();
$qty = array();
$price = array();
for ($i = 0; $i < $count; $i++) {
$name[$i] = $cart[$i]->getProduct()->getName();
$qty[$i] = $cart[$i]->getQty();
$price[$i] = $cart[$i]->getProduct()->getPrice();
$productList[$i] = array(
$name[$i],
$qty[$i],
$price[$i]
);
}
print_r($productList);
使用下面的代码
<?php
error_reporting(E_ALL);
require_once('app/Mage.php');
Mage::init();
Mage::getSingleton("core/session", array("name" => "frontend"));
$productList = array();
$quote = Mage::getSingleton('checkout/session')->getQuote();
foreach ($quote->getAllItems() as $item) {
$productList[]=array($item->getName(),$item->getQty(),$item->getPrice());
}
我想这种方法更好一些
<?php
error_reporting(E_ALL);
require_once("app/Mage.php");
function setData($acc, $item)
{
$acc[] = [
$item->getProduct()->getName(),
$item->getQty(),
$item->getProduct()->getPrice()
];
return $acc;
}
Mage::init();
Mage::getSingleton("core/session", ["name" => "frontend"]);
print_r(array_reduce(Mage::getSingleton("checkout/session")->getQuote()
->getAllVisibleItems(), "setData", []));
这属于。您的代码不符合我的需要。因为我想从第三方shell脚本收集上面提到的产品属性。也不是来自magento模块。
ini_set('display_errors', '1');
require_once('app/Mage.php');
Mage::app('default');
$storeId = 0;
Mage::app()->setCurrentStore(Mage::getModel('core/store')->load($storeId));
$products = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('*')
foreach ($products as $product) {
print_r($product->getdata());
}