PHP-də OOP-də obyekt yaradıldıqdan dərhal sonra metodun çağırılması
Tutaq ki, bizə Arr sinifi verilib, hansı ki,
özündə ədədlər massivini saxlayır və getSum metodu
vasitəsilə bu ədədlərin cəmini hesablaya bilir.
Ədədlərin özləri massiv şəklində obyektin konstruktoruna
ötürülür və həmçinin add metodu ilə bir-bir
əlavə oluna bilər:
<?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);
}
}
?>
Arr sinifindən istifadə nümunəsi:
<?php
$arr = new Arr([1, 2, 3]);
$arr->add(4);
$arr->add(5);
echo $arr->getSum(); // çap edəcək 15
?>
Ola bilər ki, bütün lazımi ədədləri biz obyekt yaradılma anında ötürək, sonra isə dərhal onların cəmini tapmaq istəyək:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // çap edəcək 6
?>
Əgər biz artıq obyektlə heç bir manipulyasiya
etməyi planlaşdırmırıqsa, yuxarıdakı kodu daha
qısa şəkildə yazmaq olar: obyekt yaradıb
dərhal onun getSum metodunu çağırmaq olar:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // çap edəcək 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);
}
}
?>
Tutaq ki, bu siniflə aşağıdakı kimi işlənilib:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Bu kodu sinifi yerindəcə çağırmaq vasitəsilə yenidən yazın.