Со школы всем известно, что в основе арифметики лежат четыре операции:
сложение, вычитание, умножение и деление. Мы используем эти действия
в PHPсценарии, созданном для расчета общей стоимости покупок. Сценарий
может быть применен как основа прикладной программы shopping cart («кор
зина покупателя»).
Создание калькулятора стоимости покупок
- Откройте текстовый редактор и создайте новый документ (листинг 4.1).
- Между PHPтэгами вставьте такую запись:
- Сохраните сценарий как файл numbers.php и загрузите его на сервер.
- Протестируйте сценарий в Webбраузере, не забудьте указать количество
товара и скидки (рис.)
<HTMLxHEADxTITLE>Using Numbers</TITLEx/HEADxBODYx?php?>
</BODYx/HTML>
$Cost = 2000.00; $Тах = 0.06;
Мы вручную задаем стоимость товара, равную ,000.00. Запомните, р зна
чении переменной не используется ни знак доллара, ни запятая. Также вруч
ную задается ставка налога с продаж (6%). В коде мы используем десятичную
дробь 0.06, чтобы пока не отвлекаться на операции с процентами. Оба числа
с плавающей запятой.
$TotalCost = $Cost * $Quantity;
Умножение в языке РНР обозначается звездочкой (*). Значение перемен
ной $Quantity может передаваться в сценарий из экранной формы, как это
и происходит в приложении shopping cart на Webсайте. Вы можете использо
вать способы, продемонстрированные в главе 3, и создать такую форму, но
здесь мы просто добавим это значение к указателю URL.
Листинг 4.1. Хотя вычисления довольно простые, не стесняйтесь добавлять
комментарии, которые вы считаете необходимыми для описания этого процес
са. Если вы собираетесь усовершенствовать свои навыки работы с HTML, со
здайте форму, которая берет информацию у пользователя (включая количество
и скидку) и передает ее в сценарий.
1 <HTML>
2 <HEAD>
3 <TITLE>Using Nurnbers</TITLE>
4 </HEAD>
5 <BODY>
6 <?php
7 /* Переменная $Quantity должна быть передана в эту страницу.
$Discount необязательна. */
8 $Cost = 2000.00;
9 $Тах = 0.06;
10 $TotalCoet = $Cost * $Quantity;
11 $Тах = $Тах + 1; // Налог ($Тах) 1.06.
12 $TotalCost = $TotalCost $Diecount;
13 $TotalCost = $TotalCost * $Tax;
14 $Payments = $TotalCost /12;
15 .// Печать результатов.
16 print ("You requested to purchase $Quantity widget(s) at $$Cost
each.n<P>");
17 print ("The total with tax, minus your $$Discount, comes to $");
18 print (" n<P>You may purchase the widget(s) in 12 monthly
installments of $$Payments each.n<P>");
19 ?>
20 </BODY>
21 </HTML>
$Tax = $Tax + 1; // Налог ($Тах) 1.06.
Для сложения используется знак плюс (+). Вы можете вычислить, сколько
будет стоить товар, включая налог, добавив к проценту единицу и затем умно
жив это число на общую стоимость покупки. Для ясности добавим коммента
рий (его можно разместить в конце строки, как у меня, а можно на следующей
строке, допустимо вообще не делать комментариев). Одна из причин объеди
нения обоих типов чисел в одну категорию переменных заключается в следу
ющем: вы можете выполнять вычисления со смешанными типами переменных
без какихлибо проблем.
$TotalCost = $TotalCost $Discount;
Чтобы показать операцию вычитания, для которой используется знак ми
нус (), предположим, что можно использовать скидку, которая также будет до
бавлена к указателю URL или введена в форму.
$TotalCost = $TotalCost * $Tax;
Можно сделать вычисление с самой переменной для присвоения ей нового
значения (вполне обычная практика), но обратите внимание, что первоначаль
ное значение переменной теряется. Поэтому на данной строке первоначаль
ное значение переменной $TotalCost заменено значением, полученным
в результате умножения величины $TotalCost на $Тах.
$Payments = $TotalCost / 1 2 ;
Чтобы продемонстрировать операцию деления, предположим, что за товар
будет уплачено в течение года. Поэтому мы разделили сумму покупки, включая
налоги и соответствующие скидки, на 12 и нашли сумму ежемесячного платежа.
Этот комментарий отделяет вычисления от передачи результатов в браузер.
print ("You requested to purchase $Quantity widget(s) at $$Cost
—each.n<P>");
print ("The total with tax, minus your $$Discount, comes to $");
print (" n<P>You may purchase the widget(s) in 12 monthly
installments —of $$Payments each.n<P>");
Поэкспериментируйте с этими значениями, в том числе опуская перемен
ные, как на рис. , и посмотрите, правильно ли работает калькулятор.
Как можно было заметить, калькулятор использует числа, не совсем соответству
ющие реальным денежным значениям (см. рис. ). В следующем разделе вы на
учитесь округлять числа
Если вы хотите распечатать значение общей суммы до прибавления налога и вы
читания скидки, есть два способа сделать это. Первый состоит в том, чтобы вста
вить соответствующую инструкцию print () сразу же за рассчитанным значени
ем, перед тем как переменная $TotalCost была изменена. Второй способ
создать новые переменные, в которых будут храниться значения последующих вы
числений (например, $TotalWithTax и $TotalLessDiscount).
Есть два способа напечатать цифру со знаком доллара, например 00.00. Пер
вый заэкранировать знак доллара, как это сделано в примере. Второй вставить
пробел между знаком доллара и именем переменной. В таком случае и знак дол
лара, и пробел будут переданы в браузер. Нельзя использовать переменную типа
$$Variable, так как комбинация $$ создает особый тип переменной, который
в книге не рассматривается.