Metodo iškart po objekto sukūrimo iškvietimas OOP PHP
Tarkime, kad turime klasę Arr, kuri
saugo skaičių masyvą ir gali apskaičiuoti
šių skaičių sumą naudodama metodą getSum.
Pats skaičiai ateina masyvo pavidalu į objekto
konstruktorių, taip pat gali būti pridedami po vieną
naudojant metodą 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);
}
}
?>
Štai klasės Arr naudojimo pavyzdys:
<?php
$arr = new Arr([1, 2, 3]);
$arr->add(4);
$arr->add(5);
echo $arr->getSum(); // išvestų 15
?>
Gali būti taip, kad visus reikalingus skaičius mes perduosime objekto sukūrimo metu, o tada iškart norėsime rasti jų sumą:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // išvestų 6
?>
Jei daugiau neplanuojame atlikti jokių
manipuliacijų su objektu, tai aukščiau pateiktą kodą
galima perrašyti trumpiau: galima sukurti objektą ir
iškart iškviesti jo metodą getSum:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // išvestų 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);
}
}
?>
Tarkime, su šia klase dirbta taip:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Perrašykite šį kodą naudodami klasės iškvietimą vietoje.