@JohnTrullo

Кто поможет разобраться в работе скрипта из книги PHP?

Помогите разложить скрипт по полочкам. Суть скрипта я понял, не понял как он работает. Отписал то, что я приблизительно понимаю. Не понимаю алгоритм действий интерпретатора.

<?php
function selectedItems($items, $selected = 0){ // тут я понял что передается массив с именами и фамилиями
  $text = ""; // этой переменной возвращается значение
  foreach ($items as $k => $v) {  // цикл перебирает $k - фамилия => $v - имя
    if ($k === $selected) // условие если фамилия равняется по значению и по типу не понятно что за selected
    $ch = $selected; // здесь переменной присваивал значение
    else // тут ясно если условия не соблюдены то вы полнятся этот оператор
    $ch = ""; //переменной присваиваем значение
    $text .= "<option $ch value ='$k'>$v</option>\n>"; // тут для вообще непонятная тема
  }
  return $text; // возвращаем в переменную значение
}
$names = [
"Weaving" => "Hugo", "Goddard" => "Paul", "Taylor" => "Robert", // это массив
];
if(isset($_REQUEST['surname'])){ // берем с глобальной переменной сернейм я так и не понял откуда она там взялась
  $name = $names [$_REQUEST['surname']]; // присваиваем значение 
echo "Вы выбрали {$_REQUEST['surname']}, $name "; // эком показываем на экран результат
}
?>

<form action = "test.php" method="POST"> <!-- передача формы -->
Выберите имя :
<select name="surname"> <!-- выпадающий список -->
<code lang="php"><?=selectedItems($names, $_REQUEST['surname'])?> </code> <!-- вызов функции с передачей аргументов (массива и глобальной переменной) -->
</select><br/> 
<input type="submit" value="Узнать фамилию"> <!-- кнопка -->
</form>
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Вы пробовали это запускать в браузере?
Оно выведет форму с выпадающим списком имен.
Когда вы выберете в форме имя, и нажмете кнопку "Узнать фамилию" форма отправится на сервер
переменная $_REQUEST['surname'] будет заполнена выбранным именем, она-же и передается в $selected.

Главу про оператор return и возврат значения вам не помешает перечитать внимательно еще раз, вы это "передается" и "возвращается" частенько упоминаете неправильно.

Я отредактировал что бы все было видно
там в редакторе есть кнопка </>, которая позволяет вставлять код.
Ответ написан
SagePtr
@SagePtr
Еда - это святое
Код кривой, $ch нужно присваивать не переменную $selected, а слово "selected", чтобы в выведенном HTML-коде оно там фигурировало. А ещё, в HTML нельзя использовать пробелы вокруг знака = при указании атрибутов, они воспринимаются парсером, как разделитель.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽