Я пытаюсь написать для написания программы, но получаю некоторые ошибки.
Базовый класс автомобиля
Автомобильный класс Camaro
Сценарий кода: В этом примере мне нужно создать экземпляр Camaro и сказать ему, чтобы он водил, я предполагаю, что он движется по прямой линии, и нет других факторов вождения. Автомобиль будет ускоряться, пока он не достигнет максимальной скорости. Требуется, чтобы диск вызывал ускорение. Требуется, чтобы ускорение увеличивало текущую скорость на 1. Как только Camaro достигнет максимальной скорости, он должен прекратить ускорение и печать, чтобы он достиг максимальной скорости автомобиля. Затем также следует остановить выполнение диска. *
Мой код ниже, чем я пытался.
<?php class Car extends CI_Controller { public function accelerate($_brand,$_max) { if($this->$_speed<=$_max) { $this->$_speed += 1; return true; } else { echo $this->_brand . 'Reached max speed'; } function drive() { $this->accelerate(); } } public $_speed = 0; public $_brand = 'unknown'; public $_max = 0; } class Camaro extends Car { public $_brand = 'Chevy'; public $_max = 100; } $car1 = new Camaro(); echo $car1 -> accelerate($_brand,$_max); ?>
Давайте избавимся от некоторых ужасов в коде и переформатируем его;)
1) вместо $this->$_speed
use $this->_speed
2) поместить все объявления свойств наверху вашего класса
class Car extends CI_Controller { public $_speed = 0; public $_brand = 'unknown'; public $_max = 0; public function accelerate($_brand,$_max) { if($this->_speed<=$_max) { $this->_speed += 1; return true; } else { echo $this->_brand . 'Reached max speed'; } } public function drive() { $this->accelerate(); } } class Camaro extends Car { public $_brand = 'Chevy'; public $_max = 100; } $car1 = new Camaro(); echo $car1 -> accelerate($car1->_brand, $car1->_max); ?>
Просто отредактируйте приведенный ниже код:
1) в классе автомобилей:
if($this->_speed<=$_max) { $this->_speed += 1; return true; }
2) Демо
$car1 = new Camaro(); echo $car1->accelerate($car1->_brand, $car1->_max);
Наконец-то я получил решение. Спасибо за помощь. Это последняя программа, которая работала для меня.
<?php class Car extends CI_Controller { public $_speed = 0; public $_brand = 'unknown'; public $_max = 0; public function accelerate($_brand,$_max) { for ($_speed = 0; $_speed <= $_max; $_speed++) { if ($this->_speed <$_max) { echo "<p>$_speed<p>"; } } echo $this->_brand . ' reached max speed.'; } public function drive() { $this->accelerate(); } } class Camaro extends Car { public $_brand = 'Chevy'; public $_max = 100; } $car1 = new Camaro(); echo $car1 -> accelerate($car1->_brand, $car1->_max); ?> //output 1 2 3 ... 100 Chevy reached max speed.