Упражнения с функцией PHP: функция, вызывающая другую функцию
Функция, вызывающая другую функцию
Для этого упражнения PHP возьмите свой скрипт из упражнения о месяцах. Перепишите функцию "option" и назовите её "makeOptions", чтобы она включала в себя всю работу по созданию опции. Она должна будет принять массив в качестве аргумента и перебрать значения ключей массива, чтобы получить параметры.
Напишите вторую функцию "makeSelect" для создания всего поля выбора. Эта функция должна вызывать функцию "makeOptions" для создания параметров. Предусмотрите в функции проверку ошибок, чтобы убедиться, что переменная, используемая для параметров, на самом деле является массивом.
Пример
Попробуй сам »<?php
//Создать массив
$months=array(
'Январь'=>31,
'Февраль'=>'28 дней, если високосный год 29',
'Март'=>31,
'Апрель'=>30,
'Май'=>31,
'Июнь'=>30,
'Июль'=>31,
'Август'=>31,
'Сентябрь'=>30,
'Октябрь'=>31,
'Ноябрь'=>30,
'Декабрь'=>31
);
//Эта функция создает параметры выбора
function makeOptions($value){
//Параметры нуждаются в ключевых значениях, как в исходном упражнении
foreach($value as $k => $v){
echo "<option value=\"$k\">" .ucfirst($k). "</option>\n";
}
}
//Эта функция вызывает функцию makeOptions для создания поля выбора
function makeSelect($name, $value){
//Проверяем, является ли $ value массивом
if (!is_array($value)){
exit ("Ошибка: значение не является массивом");
//Это можно было бы записать так: die ("Ошибка: значение не является массивом.");
}
//Начинаем HTML для поля выбора
echo "<select name=\"$name\">\n";
//Создаем параметры
makeOptions($value);
echo "</select>" ;
}
//Если форма не отправлена, показать форму
if(!isset ($_POST['submit'])){
?>
<form method="post" action="function_demo_11.php">
<p>Выберите месяц</p>
<?php
makeSelect('month', $months);
?>
<input type="submit" name="submit" value="Выполнить" />
</form>
<?php
//Если форма отправлена, ответьте пользователю
} else {
//Получение пользовательского ввода
$month = $_POST['month'];
//Разрешить февраль с использованием условного оператора
if ($month == 'Февраль'){
echo "Месяц Февраль имеет " . $months['Февраль'] . ".";
}else{
echo "Месяц $month имеет $months[$month] дней.";
}
}
?>
Комментарии
<code>
, несколько строчек кода — в теги<pre><code>
...ваш код...</code></pre>
.