Anropa metod direkt efter att ha skapat ett objekt i OOP i PHP
Låt oss säga att vi har klassen Arr, som
lagrar en array med siffror och kan beräkna
summan av dessa siffror med metoden getSum.
Siffrorna kommer i form av en array till konstruktorn
för objektet, och kan också läggas till en i taget
med metoden 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);
}
}
?>
Här är ett exempel på användning av klassen Arr:
<?php
$arr = new Arr([1, 2, 3]);
$arr->add(4);
$arr->add(5);
echo $arr->getSum(); // kommer att skriva ut 15
?>
Det kan hända att vi skickar alla nödvändiga siffror i samband med att objektet skapas, och sedan omedelbart vill hitta deras summa:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // kommer att skriva ut 6
?>
Om vi inte planerar att göra fler manipulationer
med objektet, kan koden ovan skrivas om kortare:
man kan skapa ett objekt och
omedelbart anropa dess metod getSum:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // kommer att skriva ut 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);
}
}
?>
Låt oss säga att följande kod har skrivits för att arbeta med denna klass:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Skriv om denna kod genom att anropa klassen på plats.