Я создаю калькулятор php, который должен использовать следующие классы, а затем распечатать имя пользователя и средний балл, который они достигли. Это код, который у меня есть до сих пор, но он не отображается правильно, он говорит, что отсутствуют аргументы и неопределенные переменные, но я не уверен, где я ошибся!PHP-калькулятор не правильно отображает результаты
<?php
class person {
public $name;
}
class student extends person {
function student ($name, $grade1, $grade2) {
if(is_numeric($grade1) && is_numeric($grade2)){
$grades = array($grade1, $grade2);
}
elseif (is_numeric($grade1)) {
$grade2 = 0;
}
else {
$grade1 = 0;
}
}
function average ($grades) {
$length = count($grades);
$total = 0;
for ($i = 0; $i < $length; $i++) {
$total = $total + $grades[i];
}
$average = $total/$length;
return $average;
}
}
$person1 = new student ($_POST['firstName'], $_POST['firstGrade1'], $_POST['firstGrade2']);
$person2 = new student ($_POST['secondName'], $_POST['secondGrade1'], $_POST['secondGrade2']);
$person3 = new student ($_POST['thirdName'], $_POST['thirdGrade1'], $_POST['thirdGrade2']);
echo "<br/> $person1->name" . "achieved an average of" . "$person1->average();";
echo "<br/> $person2->name" . "achieved an average of" . "$person2->average();";
echo "<br/> $person3->name" . "achieved an average of" . "$person3->average();";
?>
СООБЩЕНИЯ ОБ ОШИБКАХ: Предупреждение: Отсутствует аргумент 1 для студентов :: средний(), называемый в C: \ Program Files (x86) \ EasyPHP-DevServer-14.1VC11 \ Data \ localweb \ мои портативных файлов \ Упражнение 4 \ average.php в строке 40 и определено в C: \ Program Files (x86) \ EasyPHP-DevServer-14.1VC11 \ data \ localweb \ мои переносные файлы \ Упражнение 4 \ average.php в строке 22
Уведомление : Неопределенная переменная: оценки в C: \ Program Files (x86) \ EasyPHP-DevServer-14.1VC11 \ data \ localweb \ мои переносные файлы \ Упражнение 4 \ average.php в строке 23
Предупреждение: Деление на ноль i n C: \ Program Files (x86) \ EasyPHP-DevServer-14.1VC11 \ data \ localweb \ мои переносные файлы \ Упражнение 4 \ average.php в строке 30
также, если один из их классов не является числовым, тогда его необходимо установить на 0 – user3005003
Какие конкретные ошибки вы получаете? Почему вы используете древние конструкторы стиля PHP4 вместо '__construct()'? Наконец, вы должны серьезно рассмотреть возможность использования записей доступа к массиву для значений POST. Выполнение чего-то типа 'firstGrade1' не является масштабируемым. Назовите свои поля типа 'name [0]' 'grade [0] [0]' 'grade [0] [1]' и эти данные заселятся в красивый массив для вас автоматически. –
Если вы хотите узнать, где вы ошибетесь, посмотрите на сообщения об ошибках - они содержат номер строки для определенной части кода, которая не удалась. –