Совместное использование различных операторов

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

$Number = 1 0 4 / 2 ;

Будет ли результатом число 3 (сначала вычитаем, потом делим) или 8 (сна
чала делим, потом вычитаем)? Правильный ответ 8, так как деление имеет
приоритет над вычитанием. В приложении С представлен список приоритетов
операторов в РНР (включая не упомянутые здесь).

Однако вместо заучивания большой таблицы символов я бы порекомендо
вал использовать скобки, которые всегда имеют приоритет над другими опера
торами:

$Number = ( 1 0 4 ) / 2;
$Number = 10 (4 / 2);

В первом примере переменная теперь равна 3, а во втором 8. Использова
ние скобок гарантирует, что вы не получите странных результатов вычислений.
Можно переписать сценарий, объединив многочисленные строки в одну,
при этом поддерживая порядок вычислений с помощью скобок.

Листинг 4.4 т Вместо выполнения вычислений на нескольких строках, мы
сделали это на одной, не нарушив математических принципов. Используя скоб
ки, можно не беспокоиться о приоритетах операторов.

1 <HTML>
2 <HEAD>
3 <TITLE>Using Numbers</TITLE>
4 </HEAD>
5 <BODY>
6 <?php
7 /* Переменная $Quantity должна быть передана в эту страницу из формы.
$Discount необязательна. */
8 $Cost = 2000.00;
9 $Тах = 0.06;
10 $Тах++; // Налог ($Тах) 1.06.
11 $TotalCost = (($Cost * $Quantity) $Discount) * $Tax;
12 $Payments = $TotalCost /12;
13 // Печать результатов.
14 print ("You requested to purchase $Quantity widget(s)at $$Cost
each. rxP>") ;
15 . print ("The total with tax, minus your $$Discount, comes to $");
16 printf ("%01.2f", $TotalCost);
17 print (" n<P>You may purchase the widget(s) in 12 monthly
installments of $");
18 printf ("%01.2f", $Payments);
19 print (" each.n<P>");
20 ?>
21 </BODY>
22 </HTML>

Установление приоритета с помощью скобок

  1. Откройте файл numbers.php в текстовом редакторе.
  2. Измените строку 13 следующим образом (листинг 4.4):
  3. STotalCost = (($Cost * $Quantity) . $Discount) * $Tax;

    Вполне можно выполнить все вычисления разом, если вы используете скоб
    ки для установки приоритетов. Другой вариант выучить правила приорите
    тов в РНР, но намного легче использовать скобки.

  4. Удалите строки 10 и 12. Так как вычисление происходит на одной строке,
    эти две больше не нужны.
  5. Сохраните сценарий, загрузите его на сервер и протестируйте в браузере
    (рис.).
  6. Следите за правильностью использования скобок при создании формул (каждая
    открывающая скобка должна иметь закрывающую).

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: