⊗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(); ?>

Препишите овај код преко позивања класе на месту (инстанце на лицу места).

Српски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Користимо колачиће за рад сајта, аналитику и персонализацију. Обрада података се врши у складу са Политиком приватности.
прихвати све подеси одбиј