Junior — Senior
Настройка строкового представления объекта Math
livecode
Առաջադրանքի պայման
Требуется изменить существующий код так, чтобы при попытке вывести объект класса 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;.