Что у меня есть:PHP - сделать объекты класса как свойства другого класса
$tom = new Driver;
$bmw = new Car;
$benz = new Car;
То, что я хочу иметь:
foreach (Car::$all_cars as $car) {
$tom->setRating($car, $rating); // $rating comes from user input
}
Вопрос:
Как реализовать это?
Ограничения:
- Количество объектов автомобиль не переменных и неизвестных (таким образом, не статические имена свойств в классе Driver).
- Каждый водитель имеет рейтинг для каждого объекта в классе автомобилей.
- Оценочное свойство должно быть определено в классе водителей намеренно.
То, что я думаю:
Class Driver {
private $cars;
public function __construct() {
$his->cars = new \stdClass();
foreach (Car::$all_cars as $car) {
$this->cars->$car = NULL;
}
}
public setRating($car, $rating) {
$this->cars->$car = $rating;
}
}
Class Car {
public static $all_cars = array();
public $name;
public function __construct($name) {
$this->name = $name;
self::$all_cars[] = $this->name;
}
}
$bmw = new Car('bmw');
$benz = new Car('benz');
$tom = new Driver;
foreach (Car::$all_cars as $car) {
$tom->setRating($car, $rating); // $rating comes from user input
}
Создать массив автомобилей в 'Driver' класса –
Может' Driver' только один 'bmw' или они могут иметь любое количество их? – Tigger