Ответ: возможно.
Нет разницы передашь через uri или через сессию/cookies или из базы.
Нужно всего лишь вывести в цикле. И тот который отмечен (...&select1=val2) вставить "selected":
<option selected value="val2">Один из вариантов</option>
Что за массив ты хочешь наполнить?
Идентификатор сессии и так уникальный.
Перейди на php.net/manual/ru/book.session.php на этом сайте есть всё что тебе нужно.
Может в книге не стали писать объемный код как пример, а записали короткий и по этому у вас сомнения.
Если 3 строки то Мартин и сам, может не стал бы выносить его в метод. Но если речь идет о большем объеме кода в блоке, то совет не будет лишним.
Главное в коде что бы его можно было легко понять. Т.е. прочитать название метода быстрее чем разобраться что он делает.
$test1 = new Test1();
Это ты написал в первой части кода.
Вопрос: зачем написал, если нигде не используешь эту переменную?
Далее у тебя по методу в классе. Есть ли место где они вызываются?