Взаимодействие объектов в PHP Для изучения ООП PHP придумал такую задачку: Есть класс "Город". Со свойством "Длина". Есть класс "Авто". Со свойством "Скорость". Создается объект "Город", который должен вывести сообщение о времени потраченном на прохождение объектом "Авто" всей длины "Города". При условии, что существует этот объект "Авто". Не знаю как их заставить взаимодействовать:dlina = $dlina; } public function getDlina() { return $this->dlina; } } class Avto { private $speed; function __construct($speed) { $this->speed = $speed; } public function getSpeed() { return $this->speed; } } $a = new Avto("20"); $g = new Gorod("100"); //Нужно как-то изменить класс Gorod, что бы он выдал "5" исходя из-того, что существует объект Avto со скоростью 20 и объект город имеет длину 100. ?>
Для того чтобы объекты "Город" и "Авто" взаимодействовали, можно добавить метод в класс "Город", который будет принимать объект "Авто" и на его основе вычислять время прохождения всей длины города.
Пример кода:
class Gorod { private $dlina; function __construct($dlina) { $this->dlina = $dlina; } public function getDlina() { return $this->dlina; } public function calculateTime(Avto $avto) { $time = $this->dlina / $avto->getSpeed(); return $time; } } class Avto { private $speed; function __construct($speed) { $this->speed = $speed; } public function getSpeed() { return $this->speed; } } $a = new Avto("20"); $g = new Gorod("100"); echo $g->calculateTime($a); // Выведет 5
В данном примере добавлен метод calculateTime, который принимает объект "Авто" и на его основе вычисляет время прохождения всей длины города. При вызове этого метода с объектом "Авто" в качестве аргумента, будет получено время прохождения, которое затем можно вывести на экран.
Для того чтобы объекты "Город" и "Авто" взаимодействовали, можно добавить метод в класс "Город", который будет принимать объект "Авто" и на его основе вычислять время прохождения всей длины города.
Пример кода:
class Gorod{
private $dlina;
function __construct($dlina)
{
$this->dlina = $dlina;
}
public function getDlina()
{
return $this->dlina;
}
public function calculateTime(Avto $avto)
{
$time = $this->dlina / $avto->getSpeed();
return $time;
}
}
class Avto
{
private $speed;
function __construct($speed)
{
$this->speed = $speed;
}
public function getSpeed()
{
return $this->speed;
}
}
$a = new Avto("20");
$g = new Gorod("100");
echo $g->calculateTime($a); // Выведет 5
В данном примере добавлен метод calculateTime, который принимает объект "Авто" и на его основе вычисляет время прохождения всей длины города. При вызове этого метода с объектом "Авто" в качестве аргумента, будет получено время прохождения, которое затем можно вывести на экран.