⊗ppOpCgCC 43 of 107 menu

Meetodi väljakutse kohe pärast objekti loomist OOP-s PHP-s

Olgu meil klass Arr, mis salvestab endas numbrite massiivi ja suudab arvutada nende numbrite summat meetodi getSum abil. Numbrid ise tulevad massiivina objekti konstruktorisse ja neid saab lisada ükshaaval meetodi add abil:

<?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); } } ?>

Siin on näide klassi Arr kasutamisest:

<?php $arr = new Arr([1, 2, 3]); $arr->add(4); $arr->add(5); echo $arr->getSum(); // väljastab 15 ?>

Võib juhtuda, et kõik vajalikud numbrid antakse edasi objekti loomise hetkel ja seejärel tahetakse kohe leida nende summa:

<?php $arr = new Arr([1, 2, 3]); echo $arr->getSum(); // väljastab 6 ?>

Kui me ei kavatse enam objektil mingite manipulatsioone teha, siis võib ülaltoodud koodi kirjutada lühemalt: saab luua objekti ja kohe kutsuda selle meetodit getSum:

<?php echo (new Arr([1, 2, 3]))->getSum(); // väljastab 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); } } ?>

Oletame, et selle klassiga töötati järgmiselt:

<?php $str = new Str('aaa'); $str->append('bbb'); $str->append('ccc'); echo $str->getLength(); ?>

Kirjutage see kood ümber klassi väljakutsega kohapeal.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu