Использование операций: вычисление итоговых сумм для формы

Теперь, когда мы знаем, как пользоваться операциями РНР, можно вычислить итоговую сумму и сумму НДС для формы заказа компании АВС.

Для этого в нижнюю часть разрабатываемого РНР-сценария необходимо добавить следующий код:

$totalqty = 0;
$totalqty = $filtr + $filtr_v + $sparkqty;
echo 'Заказано товаров:'.$totalqty. '<br>';
$totalamount = 0.00;
$totalamount = $filtr * FILTRPRICE
+ $filtr_v * FILTRVPRICE
+ $sparkqty * SPARKPRICE;
echo 'Итого:'.number_format($totalamount,2). 'RUB<br>';
$ndc = 0.18; //Налог НДС составляет 18%
$totalamount = $totalamount * (1 + $ndc);
echo 'Всего, включая НДС:'.$totalamount. 'RUB<br>';

Код обновленной веб-страницы будет выглядеть так:

<?php
//создаем короткие имена переменным
$filtr = $_POST['filtr'];
$filtr_v = $_POST['filtr_v'];
$sparkqty = $_POST['sparkqty'];
//Объявляем константы
define ('FILTRPRICE', 20);
define ('FILTRVPRICE', 10);
define ('SPARKPRICE', 4);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Компания АВС. Результаты заказа</title>
<link href="../../svd.css" rel="stylesheet" type="text/css">
</head>

<body>
<h2>Компания АВС</h2>
<h3>Результаты заказа</h3>
<?php
echo "<p>Заказ обработан в ";
echo date('H:i, j F');
echo "</p>";
echo "<p>Список вашего заказа:</p>";
echo $filtr. " - фильтр масляный <br>";
echo $filtr_v. " - фильтр воздушный<br>";
echo $sparkqty. " - свечи зажигания <br>";
$totalqty = 0;
$totalqty = $filtr + $filtr_v + $sparkqty;
echo 'Заказано товаров:'.$totalqty. '<br>';
$totalamount = 0.00;
$totalamount = $filtr * FILTRPRICE
+ $filtr_v * FILTRVPRICE
+ $sparkqty * SPARKPRICE;
echo 'Итого:'.number_format($totalamount,2). 'RUB<br>';
$ndc = 0.18; //Налог НДС составляет 18%
$totalamount = $totalamount * (1 + $ndc);
echo 'Всего, включая НДС:'.$totalamount. 'RUB<br>';
?>
</body>
</html>

Откроем веб-страницу с формой, зполним ее и нажмем кнопку Отправить заказ.

В окне веб-браузера это будет выглядеть ТАК.

Как видите в этом фрагменте кода используется несколько операций. Операции сложения (+) и умножения (*) применяются для вычисления итоговых значений, а операция конкатенации строк (.) — для подготовки вывода в окне веб-браузера.

Кроме того, с помощью функции number_format() итоговые суммы были сформированы и представлены в виде строк с двумя десятичными разрядами. Упомянутая функция входит в состав РНР-библиотеки математических функций.

Если вы внимательно проанализируете вычисления, то у вас, возможно, возникнет вопрос, почему для них был выбран именно такой порядок. Например, рассмотрим следующий оператор:

$totalamount = $filtr * FILTRPRICE
             + $filtr_v * FILTRVPRICE
             + $sparkqty * SPARKPRICE;

Итог кажется правильным, но почему умножение выполнялось перед сложением? Это обусловлено приоритетом операций, т.е. порядком их выполнения.




  • Другие |
назадвверхвперед
Rambler's Top100