Задать вопрос

Как создать класс, который будет принимать объекты другого класса?

Здравствуйте, есть задание:
Make a class Dish that accepts multiple Ingredient objects to specify the ingredients. Tip: Think of a data structure that can hold multiple objects of the Ingredient class Tip: Consider using 'instanceof' to check passed objects to Dish constructo

Dish и Ingredients это классы. В Ingredients 2 поля с именем и ценой и 3 метода для возвращения имя, цены и метод установки цены.

Я не могу сообразить как создать этот класс Dish и чтоб он принимал объекты Ingredients (если я правильно понял задание)
  • Вопрос задан
  • 256 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Stasgar
@Stasgar
Обученная макака
<?php

class Dish
{
    protected $ingridients;

    public function addIngridient($ingridient)
    {
        if($ingridient instanceof Ingridient)
            $this->ingridients[] = $ingridient;
        else
            die('error');
    }

    public function showIngridients()
    {
        foreach ($this->ingridients as $ingridient)
        {
            echo 'Ingridient: '.$ingridient->name.'<br>';
        }
    }
}

class Ingridient
{
    public $name;
    public $price;

    public function __construct($name, $price)
    {
        $this->name = $name;
    }
    //Код класса ингридиента
}

$soup = new Dish();

$soup->addIngridient( new Ingridient('water', '1$') );
$soup->addIngridient( new Ingridient('beef', '5$') );
$soup->addIngridient( new Ingridient('salt', '0.1$') );
$soup->showIngridients(); //нет ошибки

$soup->addIngridient('test'); //есть ошибка
$soup->showIngridients();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы