⊗ppOpCgCC 43 of 107 menu

Appel de méthode immédiatement après la création d'un objet en POO en PHP

Supposons que nous ayons une classe Arr qui stocke un tableau de nombres et peut calculer la somme de ces nombres à l'aide de la méthode getSum. Les nombres eux-mêmes sont passés sous forme de tableau au constructeur de l'objet, et peuvent également être ajoutés un par un à l'aide de la méthode 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); } } ?>

Voici un exemple d'utilisation de la classe Arr :

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

Il peut arriver que nous passions tous les nombres nécessaires au moment de la création de l'objet, puis que nous souhaitions immédiatement trouver leur somme :

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

Si nous ne prévoyons plus de faire de manipulations avec l'objet, le code ci-dessus peut être réécrit plus brièvement : on peut créer l'objet et immédiatement appeler sa méthode getSum :

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

Supposons que ce code ait été utilisé de la manière suivante :

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

Réécrivez ce code en utilisant l'appel de la classe sur place.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser