Rambler's Top100
Главная
Скачать (Download)
Dreamweaver CS6
Dreamweaver CS5
Dreamweaver CS4
Dreamweaver 8
Dreamweaver MX 2004
Dreamweaver 4
Уроки (Tutorials)
Видеоуроки new!!!

Fireworks
ЧаВо
Документация
Статьи
Программы и скрипты
Бесплатные шаблоны
Каталог сайтов
Форум
Карта сайта
Контакты

Покупать в магазине карнавальные костюмы для детей karnavalniy-kostum.ru.

Документация - Главная
- Macromedia Dreamweaver
- CSS
- Раскрутка
- PHP
- SQL
- Дизайн [1 2]
- Java
- Разное

главная > статьи >

Переключатели в PHP

Во всех языках мира есть слово «включатель»,
и только в русском — «выключатель»!
Михаил Задорнов

Сегодня мы поговорим о таком элементе синтаксиса PHP, как переключатели. Не стоит путать его с HTML-тегом <input type="radio">, который тоже создаёт переключатели. Итак,

Оператор switch

Задача: в зависимости от того, что выбирает пользователь, вывести ему необходимый вариант. Смотрим код:

Пример 1. HTML-страница с формой:

<html>
<title>Соцопрос</title>
<body>
<form action="cup6.php">
Введите Вашу оценку по русскому языку:<br>
<input type="text" name="score" value="" maxlength=1><br>

<input type="submit" value="  хм...  ">
</form>
</body>
</html>

А вот код обработчика:

Пример 2. Обработчик формы (файл cup6.php):

<?php
if (!$score) {
echo (
"Вы всё-таки введите оценку-то...");
} elseif (
$score==1) {
echo (
"Ужас!");
} elseif (
$score==2) {
echo (
"Неуд %-(");
} elseif (
$score==3) {
echo (
"Уд...");
} elseif (
$score==4) {
echo (
"Хорошо");
} elseif (
$score==5) {
echo (
"Отлично!");
} else {
echo (
"Интересная оценка...");
}
?>

Думаю, что все вы легко разобрались с кодом и поняли как он действует. Вообще говоря, код этот правильный, и в нём нет ошибок (вроде бы...), но уж очень он неудобен: целая куча условий, уследить где что достаточно тяжело. Что же делать? Сейчас нам и пригодится переключатель switch.

Внешний вид переключателя такой:

Пример 3. Внешний вид переключателя switch:

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

case
значение1:
// команды, которые выполняются, если выражение = значение1
break; // необязательно
case значение2:
// команды, которые выполняются, если выражение = значение2
break; // необязательно
...
default:
// команды, которые выполняются, если не было найдено
// ни одного совпадения
break; // необязательно
}

Как действует весь этот блок:

  1. Вычисляется значение выражения.
  2. Значение выражения сверяется со значением 1. Если они равны, то выполняется код, находящийся после команды case значение1:
  3. Если не значение выражения не равно значению 1 оно сверяется со значением 2, 4 и так далее.
  4. Если не было найдено ни одного совпадения, то выполняется код блока default.

Блок default не является обязательным: его можно не указывать.

Команда break(); после каждого блока кода нужна для того, чтобы после того, как код был выполнен, все последующие case-ы просто пропускались.

Теперь давайте изменим код второго примера на более удобный! Например, такой:

Пример 4. Изменённый код примера 2 (файл cup6.php):

<?php
switch ($score) {
case
0:
echo (
"Вы всё-таки введите оценку-то...");
break;
case
1:
echo (
"Ужас!");
break; case
2:
echo (
"Неуд %-(");
break;
case
3:
echo (
"Уд...");
break;
case
4:
echo (
"Хорошо");
break;
case
5:
echo (
"Отлично!");
break;
default:
echo (
"Интересная оценка...");
}
?>

Вот так. Просто и удобно. Результаты этой работы изображены на рисунках:

До                                                                   После

Подключение

Зачастую гораздо удобнее разбить код на несколько частей и выводить их в нужных местах. Чтобы включить содержимое одного файла в другой файл мы можем пользоваться двумя командами: require(); и include();

require()

Внешний вид команды:

Пример 6. Внешний вид команды require():

require("имя файла");

Перед началом выполнения скрипта PHP находит все команды require(); и заменяет их (команды) на содержимое указанного файла.

Замена происходит только один раз перед началом работы скрипта, так что Вы не сможете включить команду require(); в тело цикла!

Файл, который Вы подключаете командой require(); может содержать в себе PHP-код. Этот код будет выполнен.

include()

Внешний вид команды:

Пример 7. Внешний вид команды include():

include("имя файла");

Команда include(); вставляет и выполняет содержимое указанного файла, причём происходит это во время выполнения скрипта каждый раз при встрече команды inlcude();.

Несмотря на явную схожесть, команды require(); и include(); серьёзно различаются: команда require(); выполняется единожды перед началом выполнения скрипта, а команда inlcude(); каждый раз когда встречается в коде и Вы легко можете помещать команду inlcude(); в циклы.

Как это может помочь в жизни: почти на каждом сайте есть такие части страницы, которые не изменяются во всём сайте — это, например, header (заголовок, шапка) сайта и footer («подвал», низ) сайта. Чтобы не печатать их в каждой странице заново стоит вынести их в два отдельных файла (например, header.php и footer.php) и подключать по мере необходимости.

Код такой страницы может выглядеть, например, так:

Пример 8. Подключение заголовка и низа страницы из внешних файлов:

<?php
require("header.php"); // здесь находится текст текущей страницы
require("footer.php");
?>

Использование require() в этом примере предпочтительнее: мы ведь включаем эти файлы только один раз.

require_once() и inlcude_once()

Если Вам нужно сделать так, чтобы некоторый файл включался в код только один раз, то вместо require(); и include(); нужно использовать require_once(); и require_once();

Посмотрите примеры:

Пример 9. Двойное использование include_once():

<?php
include_once("top.php");
// здесь какой-нибудь код include_once("top.php");
?>

В предыдущем примере файл top.php будет включён в код страницы только один раз, несмотря на то, что в коде есть две команды.

Вот и всё...

Ну вот, вроде бы и всё, что я хотел рассказать Вам на сегодня. Будут какие-нибудь проблемы с PHP — пишите мне, я помогу!

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

И вот ещё что: стоит ли вообще задавать подобные «домашние задания»?

Успехов Вам!
главная > статьи >

Реклама

Простой конкурс с денежными призами!





Rambler's Top100 Рейтинг@Mail.ru