⊗ppOpCgCC 43 of 107 menu

Llamar a un método inmediatamente después de crear un objeto en POO en PHP

Supongamos que tenemos una clase Arr que almacena un array de números y puede calcular la suma de estos números mediante el método getSum. Los números mismos llegan en forma de array al constructor del objeto, y también pueden agregarse de uno en uno utilizando el método 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); } } ?>

He aquí un ejemplo de uso de la clase Arr:

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

Puede suceder que pasemos todos los números necesarios en el momento de crear el objeto, y luego inmediatamente queramos encontrar su suma:

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

Si no planeamos realizar más manipulaciones con el objeto, entonces el código anterior se puede reescribir de forma más breve: podemos crear el objeto e inmediatamente llamar a su método getSum:

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

Supongamos que se trabajó con esta clase de la siguiente manera:

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

Reescribe este código mediante la llamada a la clase en el mismo lugar.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar