⊗ppOpCgCC 43 of 107 menu

Chamada de método imediatamente após a criação de um objeto em POO em PHP

Suponha que temos uma classe Arr que armazena um array de números e pode calcular a soma desses números usando o método getSum. Os próprios números são passados ​​como um array para o construtor do objeto e também podem ser adicionados um por um usando o 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); } } ?>

Aqui está um exemplo de uso da classe Arr:

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

Pode acontecer que passemos todos os números necessários no momento da criação do objeto e, em seguida, queiramos imediatamente encontrar a soma deles:

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

Se não planejamos fazer mais nenhuma manipulação com o objeto, o código acima pode ser reescrito de forma mais curta: podemos criar o objeto e chamar imediatamente seu método getSum:

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

Suponha que trabalharam com esta classe da seguinte forma:

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

Reescreva este código usando a chamada da classe no local.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar