Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗ppOpCgCC 43 of 107 menu

Выклік метаду адразу пасля стварэння аб'екта ў ААП у 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(); ?>

Перапішыце гэты код праз выклік класа на месцы.

byenru