Вызов метода сразу после создания объекта
Пусть у нас дан класс Arr
, который
хранит в себе массив чисел и может вычислять
сумму этих чисел с помощью метода getSum
.
Сами числа приходят в виде массива в конструктор
объекта, а также могут добавляться по одному
с помощью метода add
:
<?php
class Arr
{
private $numbers = []; // массив чисел
public function __construct($numbers)
{
$this->numbers = $numbers; // записываем массив $numbers в свойство
}
// Добавляем еще одно число в наш массив:
public function add($number)
{
$this->numbers[] = $number;
}
// Находим сумму чисел:
public function getSum()
{
return array_sum($this->numbers);
}
}
?>
Вот пример использования класса Arr
:
<?php
$arr = new Arr([1, 2, 3]); // создаем объект, записываем в него массив [1, 2, 3]
$arr->add(4); // добавляем в конец массива число 4
$arr->add(5); // добавляем в конец массива число 5
// Находим сумму элементов массива:
echo $arr->getSum(); // выведет 15
?>
Может такое быть, что все нужные числа мы передадим в момент создания объекта, а затем сразу захотим найти их сумму:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // выведет 6
?>
Если мы больше не планируем делать никаких
манипуляций с объектом, то код выше можно
переписать короче: можно создать объект и
сразу вызвать его метод getSum
:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // выведет 6
?>
Вот еще пример - найдем сумму двух массивов:
<?php
echo (new Arr([1, 2, 3]))->getSum() + (new Arr([4, 5, 6]))->getSum();
?>
Не подсматривая в мой код реализуйте такой
же класс Arr
и вызовите его метод
getSum
сразу после создания объекта.