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

Учебник PHP #3
<< 1 ... 3 4 5 6 >>
на использовании команды switch:

$user_input = "recipes"; // Команда,выбранная пользователем

switch ($user_input) :

case("search") :

print "Let's perform a search!";

break;

case("dictionary") :

print "What word would you like to look up?";

break;

case("recipes") :

print "Here is a list of recipes...";

break;

default :

print "Here is the menu...";

break;

endswitch;

Как видно из приведенного фрагмента, команда switch обеспечивает четкую и наглядную организацию кода. Переменная, указанная в условии switch (в данном примере — $user_input), сравнивается с условиями всех последующих секций case. Если значение, указанное в секции case, совпадает Со значением сравниваемой переменной, выполняется блок этой секции. Команда break предотвращает проверку дальнейших секций case и завершает выполнение конструкции switch. Если ни одно из проверенных условий не выполняется, активизируется необязательная секция default. Если секция default отсутствует и ни одно из условий не выполняется, команда switch просто завершается и выполнение программы продолжается со следующей команды.

Вы должны помнить, что при отсутствии в секции case команды break (см. следующий раздел) выполнение switch продолжается со следующей команды до тех пор,

пока не встретится команда break или не будет достигнут конец конструкции switch. Следующий пример демонстрирует последствия отсутствия забытой команды break: $value = 0.4;

switch($value) :

case (0.4) :

print "value is 0.4<br>";

case (0.6) :

print "value is 0.6<br>";

break;

case (0.3) :

print "value is 0.3<br>";

break;

default :

print "You didn't choose a value!";

break;

endswitch;

Результат выглядит так:

value is 0.4

value is 0.6

Отсутствие команды break привело к тому, что была выполнена не только команда print в той секции, где было найдено совпадение, но и команда print в следующей секции. Затем выполнение команд конструкции switch прервалось из-за команды switch, следующей за второй командой print.

Выбор между командами switch и if практически не влияет на быстродействие про-граммы. Решение об использовании той или иной конструкции является скорее личным делом программиста.

break

Команда break немедленно прерывает выполнение той конструкции while, for или switch, в которой она находится. Эта команда уже упоминалась в предыдущем разделе, однако прерывание текущего цикла не исчерпывает возможностей команды break. В общем виде синтаксис break выглядит так:

break n;

Необязательный параметр n определяет количество уровней управляющих конструкций, завершаемых командой break. Например, если команда break вложена в две команды while и после break стоит цифра 2, происходит немедленный выход из обоих циклов. По умолчанию значение n равно 1; выход на один уровень может обозначаться как явным указанием 1, так и указанием команды break без параметра. Обратите внимание: команда i f не относится к числу управляющих конструкций, прерываемых командой break. Об этом следует помнить при использовании необязательного параметра п.

Рассмотрим пример использования команды break в цикле foreach:

$arr = array(14, 12, 128, 34, 5);

$magic number = 128:

foreach ($arr as $val) :

if (Sval == $magic_number) :

print "The magic number is in the array!";

break;

endif;

print "val is Sval <br>";

endforeach;

Если значение $magic_number присутствует в массиве $аrr (как в приведенном примере), поиск прерывается. Результат выглядит так:

val is 14

val is 12

The magic number is in the array!

Приведенный пример всего лишь демонстрирует использование команды break. В РНР существует стандартная функция in_array( ), предназначенная для поиска заранее заданной величины в массиве; эта функция подробно описана в главе 5.

continue

Остается рассмотреть еще одну управляющую конструкцию РНР — continue. При выполнении команды continue в цикле пропускаются все оставшиеся команды текущей итерации и немедленно начинается новая итерация. Синтаксис команды continue в общем виде:

continue n;

Необязательный параметр n указывает, на сколько уровней внешних циклов распространяется действие continue.

Рассмотрим пример использования команды continue. Допустим, вы хотите сосчитать простые числа в интервале от 0 до некоторой заданной границы. Простоты ради предположим, что у нас имеется функция is_prime(), которая проверяет, является число простым или нет:

$boundary = 558;

for ($i = 0; $i <= $boundary: $i++) :

if (! is_prime($i)) :

continue;

endif;

$prime_counter++;

endfor;

Если проверяемое число является простым, блок команды if обходится и переменная $prime_counter увеличивается. В противном случае выполняется команда continue, в результате чего происходит немедленный переход в начало следующей итерации.

Использование continue в длинных и сложных алгоритмах приводит к появлению запу- танного и невразумительного кода. В подобных случаях использовать continue не рекомендуется.

Команда continue не является безусловно необходимой в программах, поскольку аналогичного эффекта можно добиться при помощи команды if.

Проект: календарь событий

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

Информация о событиях хранится в обычном текстовом файле и выглядит примерно так:

July 21, 2000|8 p. m.|Cooking With Rasmus|PHP creator Rasmus Lerdorf discusses the wonders of cheese.

July 23, 2000|11 a. m.|Boxed Lunch|Valerie researches the latest ham sandwich making techniques (documentary)

July 31, 2000|2:30p.m.|Progressive Gourmet|Forget the Chardonnay: iced tea is the sophisticated gourmet's beverage of choice.

August 1, 2000|7 p.m.|Coder's Critique|Famed Food Critic Brian rates NYC's hottest new Internet cafes.

August 3, 2000|6 p.m.|Australian Algorithms|Matt studies the alligator's diet.

На рис. 3.1 изображен результат работы сценария РНР, приведенного в листинге 3.1.

Рис. З.1. Примерный вид календаря

Прежде чем переходить к подробному анализу кода, потратьте немного времени на изучение алгоритма:

Открыть файл, содержащий информацию о событиях.
Разделить каждую строку на 4 элемента: дату, время, название и краткое описание мероприятия.
Отформатировать и вывести данные.
Закрыть файл.

Листинг 3.1. Сценарий для вывода содержимого events.txt в браузере

<?

// Приложение: календарь

// Назначение: чтение и анализ содержимого файла

// с последующим форматированием для вывода в браузере

// Открыть файловый манипулятор Sevents для файла events.txt

$events - fopen ("events.txt".
Комментарии (0)
<< 1 ... 3 4 5 6 >>
Скачать Java книгу

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

На главную

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


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