Другие операторы

В большинстве своем операторы РНР и типы переменных, которые в них ис
пользуются, описывались в предыдущих главах. Это арифметические операто
ры сложения (+), вычитания (), умножения (*) и. деления (/), а также опера
торы инкремента (+ + ) и декремента (—) для увеличения и уменьшения
числового значения на единицу. Это также оператор присвоения (=), использу
емый для задания значения переменной любого типа. Мы обсудили и оператор
сцепления (.), используемый для соединения строк.

Все указанные операторы хороши для присвоения значения переменной,
но от них мало пользы, когда дело касается условных выр

Операторы сравнения

В главе 2 был представлен оператор присвоения (знак равенства). При этом
оговаривалось, что значение оператора несколько необычно. Выражение
SVariable = 5; означает не то, что переменная SVariable равна 5, а то, что ей
присвоено значение 5,

При программировании условий часто необходимо знать, равна ли пере
менная конкретному значению (например, при проверке имени пользователя
или пароля), что нельзя сделать с помощью одного знака равенства (тем более
что он уже занят оператором присвоения). Для этих целей используется опера
тор равенства (==), состоящий из двух знаков равенства подряд.

SVariable = 5;
SVariable == 5;

При совместном использовании этих строк кода первая строка присваива
ет переменной SVariable значение 5, а затем «говорит», что результат исти
нен, когда «видит», что значение SVariable равно 5. Это доказывает, какую зна
чительную разницу вносит дополнительный знак равенства в код РНР и почему
необходимо проводить четкую границу между операторами присвоения и срав
нения.

Оператор неравенства в РНР представлен комбинацией из восклицательно
го знака и знака равенства (! =). Вообще восклицательный знак показывает от
рицание значения, функцию логическое нет. SVariable означает, что перемен
ная SVariable существует и имеет значение, отличное от нуля, а ! SVariable
что переменная SVariable не существует, не имеет значения или ее значение
равно нулю.

Остальные операторы сравнения аналогичны математическим эквивален
там: меньше (<)’, больше (>), меньше или равно (<=), больше или равно (>=).
Расширим функциональность программы расчета стоимости товара, пере
писав сценарий nunlbers.php так, чтобы скидка применялась только при закуп
ке на сумму больше .

Использование операторов сравнения

  1. Откройте текущую версию numbers.php (листинг 6.2) в текстовом редак
    торе.
  2. Снизьте цену единицы товара, чтобы было не так просто дойти до иско
    мого рубежа в , строка 8.
  3. SCost = 2 0 . 0 0 ;

  4. После строки 13 измените выражение с STotalCost следующим образом:
  5. STotalCost = (SCost * SQuantity);,

    Так как скидка применима лишь для общей суммы покупки свыше , то
    сначала необходимо отдельно рассчитать эту общую сумму

  6. Создайте условие, проверяющее, превысила ли общая сумма .
  7. if (STotalCost >= 50) {
    STotalCost = STotalCost SDiscount;
    {

    Используя операторы сравнения внутри выражения условия, можно опре
    делить, что скидка будет предоставлена, только если значение $TotalCost боль
    ше или равно (не указывайте знак доллара в условии). Скидка вычитается,
    только если условие истинно.

  8. Добавьте к общей сумме налог.
  9. $TotalCost = $TotalCost * $Tax,

  10. Оставшаяся часть сценария осталась неизменной, включая определение
    ежемесячных взносов и печать всех результатов.
  11. Сохраните сценарий (листинг 6.3), загрузите его на сервер и протести
    руйте в браузере с помощью разных значений переменной $Quantity
    (рис.).
  12. Листинг 6.3 т Операторы сравнения, такие как «меньше или равно» (<=),
    позволяют лучше задавать числовые условия в коде.


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

    Если в выражениях с условным оператором if делается ошибка и вместо
    $Variable == 5 пишется $Variable = 5, то соответствующие условию ин
    струкции будут выполняться всегда. Это происходит потому, что оператор срав
    нения $Variable == 5 может быть истинным или ложным, а оператор присвое
    ния $Variable = 5 всегда выдает истину, если справа от знака равенства стоит
    ненулевое значение.

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

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