«phpClub» — архив тем ("тредов"), посвящённых изучению PHP и веб-технологий.
Аноним 2019/04/17 23:04:47  №1383151 1
Ответы: >>1385179
Аноним 2019/04/21 00:37:34  №1385179 2
>>1383193
>>1383408

Для случаев, когда есть выбор из нескольких значений, эти значения принято обозначать константами. Плюсы: защита от опечаток; видно, какие есть вообще варианты значения; видно, что это не случайная строка; автодополнение в IDE.

То есть Student::GENDER_MALE говорит гораздо больше, чем просто строка 'male' или число 1.

И в конструктор ты будешь передавать сразу константу.

>>1383151

> if (($answer == $this->answer) || array_search($answer,$this->deviation) != FALSE){

Тут явно что-то неправильно сделано. Для ответа с погрешностью тебе надо лишь проверить, что ответ находится в диапазоне (правильный ответ - погрешность; ответ + погрешность). То есть обычные сравнения больше/меньше.

> if (property_exists($question,'options') == TRUE){
> echo "Варианты ответов:\n";

А вот это неправильно. Это какой-то костыль. Тут получается, если у нас есть 10 видов вопросов, мы должны написать 10 ифов. Правильнее было бы сделать так: сделать в вопросе метод printQuestion() и пусть каждый вопрос сам определяет, как его надо выводить. Так мы можем добавлять новые типы вопросов, не трогая старый код.

> Правильно ли
> function checkTotalAnswers пытаться поместить в класс Questions?

Думаю, что нет, так как Question представляет один вопрос, а функция работает со множеством вопросов.
Ответы: >>1385271
Аноним 2019/04/21 08:47:53  №1385271 3