PHP 4 на практике

       

Проверка условий


Управляющие конструкции обычно проверяют условия на истинность или ложность, и в зависимости от результата проверки выполняется то или иное действие. Рассмотрим выражение $а == $b. Это выражение истинно, если $а равно $b, и ложно в противном случае. Результат истинного выражения считается равным 1, а результат ложного выражения равен 0. Рассмотрим следующий фрагмент:

$а = 5;

$b = 5;

print $а == $b;

В результате выводится значение 1. Если изменить $а или $Ь и присвоить переменной значение, отличное от 5, выводится 0.

if

Команда if представляет собой разновидность команды выбора, которая вычисляет значение выражения и в зависимости от того, будет ли полученный результат истинным или ложным, выполняет (или не выполняет) блок программного кода. Существует две общих формы команды i f:

if (выражение) {

блок

}

и

if (выражение) {

блок



}

else {

блок

}

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

if ($cooking_weight < 200) {

print "This is enough pasta (< 200g) for 1-2 people";

}

else {

print "That's a lot of pasta. Having a party perhaps?";

}

Если в результате проверки условия выполняется всего одна команда, фигурные скобки не обязательны:

if ($cooking_weight < 100) print "Are you sure this is enough?";

elseif

Команда elseif добавляет в управляющую конструкцию if дополнительный уровень проверки и увеличивает количество условий, на основании которых принимается решение:

if (выражение) {

блок

}

elseif (выражение) {

блок

}

В РНР существует альтернативное представление команды elself — в виде двух отдельных слов else if. Оба варианта приводят к одинаковым результатам, а альтернативное представление поддерживается исключительно для удобства. Команда elself особенно полезна в тех случаях, когда происходит последовательное уточнение проверяемых условий. Обратите внимание: условие elself вычисляется лишь в том случае, если все предшествующие условия if и elself оказались ложными.


if ($cooking_weight < 200) {

print "This is enough pasta (< 200g) for 1-2 people";

}

elseif ($cooking_weight < 500) {

print "That's a lot of pasta. Having a party perhaps?"; }

}

else {

print "Whoa! Who are you cooking for, a football team?";

}

Вложенные команды if

Вложение команд i f обеспечивает максимальный контроль над проверкой условий. Давайте исследуем эту возможность, усовершенствовав пример из предыдущих разделов. Предположим, вес продукта должен проверяться лишь в том случае, если речь идет о пасте (макаронных изделиях):

// Проверить значение $pasta

if ($food == "pasta") {

// Проверить значение $cooking_weight

if ($cooking_weight < 200) {

print "This is enough pasta (< 200g) for 1-2 people";

}

elseif ($cooking_weight < 500) {

print "That's a lot of pasta. Having a party perhaps?";

}

else {

print "Whoa! Who are you cooking for. a football team?";

}

}

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

Вычисление нескольких условий

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

if ($cooking_weight < 0) {

print "Invalid cooking weight!";

}

if ( ($cooking_weight > 0) && ($cooking_weight < 200) ) {

   print "This is enough pasta (< 200g) for 1-2 people";

}

elseif ( ($cooking_weight > 200) && ($cooking_weight < 500) ) {

   print "That's a lot of pasta. Having a party perhaps?";

}

else {

   print "Whoa! Who are you cooking for, a football team?";

}

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


Содержание раздела