Оператор switch вычисляет значение заданного выражения и сравнивает его с предложенными вариантами. В случае совпадения выполняется соответствующий блок кода.
В следующих примерах решения задач рассматривается применение этого оператора с использованием функции date для вывода даты.
Условие 2-й задачи:
Создайте форму с тремя выпадающими списками: «число», «месяц» и «год». «Число» от 1-го до 31-го, «месяц» от «Январь» до «Декабрь» и «год» от 1990 до текущего года. По умолчанию должна быть выбрана текущая дата. А если пользователь уже вводил какие-то данные (т.е. отправлял уже форму), то должны стоять те данные, которые ввёл он. Примите данные из формы и проверьте их на корректность (чтобы не было, например 30-го февраля). Если данные корректны, то выведите количество секунд, прошедших с полуночи 1.1.1970, а также дату в формате ММ-ДД- ГГГГ, а если некорректны, то выведите сообщение об ошибке.
Примечание: В 1-м пункте все 3 выпадающих списка должны быть созданы с использованием циклов. А чтобы узнать текущий год, воспользуйтесь функцией date(). Также используйте эту функцию, чтобы узнать текущий месяц и число.
Решение задачи:
<?php
if (isset($_POST[d]) && isset($_POST[m]) && isset($_POST[y]) )
{
$d = $_POST[d];
$m = $_POST[m];
$y = $_POST[y];
switch ($m)
{
case январь: $m = "01"; break;
case февраль: $m = "02"; break;
case март: $m = "03"; break;
case апрель: $m = "04"; break;
case май: $m = "05"; break;
case июнь: $m = "06"; break;
case июль: $m = "07"; break;
case август: $m = "08"; break;
case сентябрь: $m = "09"; break;
case октябрь: $m = "10"; break;
case ноябрь: $m = "11"; break;
case декабрь: $m = "12"; break;
default:
echo 'Правильно выберите название месяца года';
}
}
else
{
$d = date ("d");
$m = date ("m");
$y = date ("Y");
}
$start = mktime (0, 0, 0, $m, $d, $y);
if (checkdate ($m, $d, $y) === true)
{
echo ('Выбрана дата: ' . "$m-" . "$d-" . "$y. ");
echo "Количество секунд, прошедших с полуночи 01.01.1970 года: " . ($start);
echo "<br />";
}
else
echo "Ошибка! Введите правильную дату.";
Файл index.php:
<html>
<head>
</head>
<body>
<form action="index.php" method="post">
<p>число:
<select name="d">
<?php
if (isset($_POST[d]))
echo "<option>$d<option>";
else
{
echo "<option>";
echo date ("d");
echo "<option>";
}
for ($i = 1; $i < 32; $i++)
{
if ($i < 10)
$i = "0" . $i;
echo "<option>$i <br /></option>";
}
?>
</select>
месяц:
<select name="m">
<?php
if (isset($_POST[m]))
{
$m = ($_POST[m]);
echo "<option>$m<option>";
}
else
{
echo "<option>";
$month = date ("m");
switch ($month)
{
case 01: $month = "январь"; break;
case 02: $month = "февраль"; break;
case 03: $month = "март"; break;
case 04: $month = 'апрель'; break;
case 05: $month = "май"; break;
case 06: $month = "июнь"; break;
case 07: $month = "июль"; break;
case 08: $month = "август"; break;
case 09: $month = "сентябрь"; break;
case 10: $month = "октябрь"; break;
case 11: $month = "ноябрь"; break;
case 12: $month = "декабрь"; break;
}
echo $month;
echo "<option>";
}
$m = array (1 => январь, 2 => февраль, 3 =>март, 4 => апрель, 5 => май, 6 => июнь, 7 => июль, 8 => август, 9 => сентябрь, 10 => октябрь, 11 => ноябрь, 12 => декабрь);
foreach ($m as $key => $value)
{
echo "<option>$value <br /></option>";
}
?>
</select>
год:
<select name="y">
<?php
if (isset($_POST[y]))
echo "<option>$y<option>";
else
{
echo "<option>";
echo date ("Y");
echo "<option>";
}
for ($i = 1900; $i <= (date ("Y")); $i++)
{
echo "<option>$i <br /></option>";
}
?>
</select>
</p>
<p>
<input type="submit" value="Отправить">
</p>
</form>
</body>
</html>