⊗ppOpCgCC 43 of 107 menu

Chiamare un metodo subito dopo la creazione di un oggetto in OOP in PHP

Supponiamo di avere una classe Arr che conserva un array di numeri e può calcolare la somma di questi numeri con il metodo getSum. I numeri stessi vengono passati come array al costruttore dell'oggetto, e possono anche essere aggiunti singolarmente con il metodo 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); } } ?>

Ecco un esempio di utilizzo della classe Arr:

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

Può succedere che passiamo tutti i numeri necessari al momento della creazione dell'oggetto, e subito dopo vogliamo trovare la loro somma:

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

Se non prevediamo di effettuare altre manipolazioni con l'oggetto, il codice sopra può essere riscritto in modo più breve: possiamo creare l'oggetto e chiamare immediatamente il suo metodo getSum:

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

Supponiamo che con questa classe si sia lavorato nel modo seguente:

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

Riscrivi questo codice tramite la chiamata della classe sul posto.

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta