Обращаюсь к старшим товарищам, понимающим все тонкости программирования на уровне железа.
Мне не очень понятно, насколько действительно критичным может быть разбиение всех действий на отдельные.
=== Вариант 1 ===
Все действия отделены друг от друга
Легко читать
Легко делать отладку, так как всегда можно просто взять и вывести $price на экран
Но для выполнения скрипта (особенно, если таких мест много), требуется больше памяти
foreach ($this->cart->getProducts() as $product) {
$price = get_product_price_without_sale($product['product_id']); // Значение получено заранее. Оно хранится в памяти и занимает лишнее место
$data_deal['products'][] = array(
'name' => htmlspecialchars($product['name']),
'count' => $product['quantity'],
'price' => $this->currency->format($price, $order_info['currency_code'], $order_info['currency_value'], false)
);
}
=== Вариант 2 ===
Труднее читать
Для отладки нужно более внимательно копировать конструкцию, которая покажет, что там у нас получается
Память не занимается промежуточными переменными
foreach ($this->cart->getProducts() as $product) {
$data_deal['products'][] = array(
'name' => htmlspecialchars($product['name']),
'count' => $product['quantity'],
'price' => $this->currency->format(get_product_price_without_sale($product['product_id']), $order_info['currency_code'], $order_info['currency_value'], false)
);
}