Выклік метаду адразу пасля стварэння аб'екта ў ААП у PHP
Хай у нас дадзены клас Arr
, які
захоўвае ў сабе масіў лікаў і можа вылічваць
суму гэтых лікаў з дапамогай метаду getSum
.
Самі лікі прыходзяць у выглядзе масіва ў канструктар
аб'екта, а таксама могуць дадавацца па адным
з дапамогай метаду add
:
<?php
class Arr
{
private $numbers = [];
public function __construct($numbers)
{
$this->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]);
$arr->add(4);
$arr->add(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
class StringProcessor
{
private $str = '';
public function __construct($text)
{
$this->str = $text;
}
public function append($text)
{
$this->str .= $text;
return $this;
}
public function getValue()
{
return $this->str;
}
public function getLength()
{
return strlen($this->str);
}
}
?>
Хай з гэтым класам папрацавалі наступным чынам:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Перапішыце гэты код праз выклік класа на месцы.