Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
9
Настройка строкового представления объекта Math
Компании, где спрашивали:
Merlion
Условие задачи
Требуется изменить существующий код так, чтобы при попытке вывести объект класса Math через echo (без явного вызова метода) отображалось значение факториала числа, переданного в конструктор.
class Math
{
public function __construct(private int $value)
{
}
public function factorial(): int
{
if ($this->value < 0) {
throw new Exception("value less 0");
}
$product = 1;
for ($i = 1; $i <= $this->value; $i++) {
$product *= $i;
}
return $product;
}
}
$math = new Math(-5);
try {
echo $math->factorial();
} catch (Exception $e) {
echo $e->getMessage();
}
Ваша задача – добавить необходимый механизм (например, магический метод __toString), который будет возвращать результат factorial() и тем самым обеспечить корректный вывод при использовании echo $math;.