<?php

error_reporting(E_ALL);

class Iron
{
	// Свойства
	public $powerSupply; // Питание
	public $toggle; // Тумблер
	public $water; // Вода
	public $temp = 24; // Температура

	// Методы
	public function __construct($powerSupply, $water)
	{
		$this->powerSupply = $powerSupply;
		$this->water = $water;
	}

	public function turnOn() // Включить
	{

		if ($this->powerSupply) {

			if (!$this->toggle) {

				$this->toggle = 1;
				echo "Утюг включён\n\n";
				$this->warmUp();

			} else {
				echo "Утюг уже был включён\n\n";
			}

		} else {
			echo "Отсутствует питание\n\n";
		}

	}

	public function warmUp() // Разогреть
	{

		if ($this->toggle) {

			if ($this->temp <= 60) {

				echo "Начался разогрев:\n";
				echo "{$this->temp} °C\n...\n";

				while ($this->temp < 90) {
					$this->temp++;
				}

				echo "{$this->temp} °C\n";
				echo "Разогрев завершен, можно гладить\n\n";

			} else {
				echo "Разогрев не требуется\n\n";
			}

		} else {
			echo "Утюг не включен\n\n";
		}

	}

	public function iron($water = 0) // Гладить
	{

		// Добавляем воды
		if (isset($water)) {
			$this->water += $water;
		}

		if ($this->toggle) {

			if ($this->water >= 100) {

				if ($this->temp <= 60) {
					echo "Требуется разогрев\n\n";
					$this->warmUp();
				}

				echo "Гладим белье\n...\n";
				$this->water -= 100;
				$this->temp -= 10;
				echo "Белье поглажено\n\n";

			} else {
				echo "Недостаточно воды\n\n";
			}

		} else {
			echo "Утюг не включен\n\n";
		}

	}

	public function standIdle() // Ожидать
	{

		echo "Утюг в режиме ожидания\n\n";
		// Со временем остывает
		while ($this->temp >= 60) {
			$this->temp--;
		}
		$this->warmUp();

	}

	public function switchOff() { // Выключить

		if ($this->toggle) {
			$this->toggle = 0;
			$this->temp = 24;
			echo "Утюг выключен\n\n";
		} else {
			echo "Утюг не был включен\n\n";
		}

	}

}

$iron = new Iron(1, 300);
$iron->turnOn();
$iron->iron();
$iron->iron();
$iron->standIdle();
$iron->iron();
$iron->iron(100);
$iron->switchOff();