@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 нельзя использовать пробелы вокруг знака = при указании атрибутов, они воспринимаются парсером, как разделитель.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы