Привет, Гость!
home login register
[+] Купить Рекламу
Хостинг для тебя! Заходи не пожалеешь
Что мы делаем полезного на официальном сайте WAP-поддержки? Подробно ...
Вступайте в нашу группу ВКОНТАКТЕ
Поздравляем, новичка с ID:1000
Как самомусделать QR-код
IT новости: в Windows новая опасная уязвимость
Проблемы восприятия IT
Как подтвердить авторство в Google

Учебник PHP #3
<< 1 2 3 4 5 6 >>
условия на истинность или ложность, и в зависимости от результата проверки выполняется то или иное действие. Рассмотрим выражение $а == $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?";

}

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

Альтернативное ограничение блоков

В управляющих структурах используются специальные ограничители, определяющие границы блоков. Фигурные скобки ({ }) уже упоминались выше. Для удобства программистов в РНР поддерживается альтернативный формат ограничения блоков:

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

блок

else :

блок

endif;

Следовательно, две приведенных ниже команды if полностью эквивалентны:

if ($а== $b) {

print "Equivalent values!";

}

if ($a == $b) :

print "Equivalent values!";

endif;

while

Конструкция while предназначена для многократного (циклического) выполнения блока команд. Блок команды while выполняется до тех пор, пока условие цикла остается истинным. Общая форма цикла while выглядит так:

while (выражение) :

блок

endwhile;

Рассмотрим использование цикла while на примере вычисления факториала (n!), где n = 5:

$n = 5;

$nсору = $n;

$factorial = 1; // Установить начальное значение факториала

while ($n > 0) :

$factorial - $n * $factorial;

$n--; // Уменьшить $n на 1

endwhile;

print "The factorial of $ncopy is $factorial.";

Программа выводит следующий результат:

The factorial of 5 is 120.

В этом примере $n уменьшается в конце каждой итерации. Условие цикла не должно быть истинным в тот момент, когда переменная $n станет равна 0, поскольку величина $factorial умножится на 0 — конечно, этого быть не должно.

В приведенном примере условие цикла следовало бы оптимизировать и привести его к виду $n > 1, поскольку умножать $factorial на 1 бессмысленно — число от этого не изменится. Хотя ускорение работы программы будет ничтожно малым, такие факторы всегда принимаются во внимание с ростом объема и сложности программ.

do. .while

Цикл do. .while работает почти так же, как и цикл while, описанный в предыдущем разделе, однако в do. .while условие проверяется не в начале, а в конце каждой итерации. Учтите, что цикл do. .while всегда выполняется хотя бы один раз, а цикл while может вообще не выполняться, если перед входом в цикл условие окажется ложным:

do:

блок

while (выражение);

Давайте пересмотрим пример с вычислением факториала и перепишем его с использованием конструкции do. .while:

$n = 5:

$ncopy = $n;

$factorial = 1; // Установить начальное значение факториала

do {

$factorial = $n * $factorial;

$n--: // Уменьшить Sn на 1

} while (Sn > 0);

print "The factorial of Sncopy is $factorial.";

При выполнении этого примера будет получен тот же результат, что и при выполнении его прототипа из предыдущего раздела.

В цикле do. .while не поддерживается альтернативный синтаксис (ограничение блоков при помощи : и завершающего ключевого слова), поэтому блок может заключаться только в фигурные
Комментарии (0)
<< 1 2 3 4 5 6 >>
Скачать Java книгу

»php/mysql/pdo/js
В библиотеку

На главную

Сообщество wap разработчиков I HwapCMS официальный сайт поддержки


RSS-лента
Генерация: 0.009 сек.