Thirrja e metodës menjëherë pas krijimit të objektit në OOP në PHP
Le të themi se kemi klasën Arr, e cila
ruan një grup numrash dhe mund të llogarisë
shumën e këtyre numrave duke përdorur metodën getSum.
Vetë numrat vijnë në formë të grupit te konstruktori
i objektit, dhe gjithashtu mund të shtohen një nga një
duke përdorur metodën 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);
}
}
?>
Këtu është një shembull i përdorimit të klasës Arr:
<?php
$arr = new Arr([1, 2, 3]);
$arr->add(4);
$arr->add(5);
echo $arr->getSum(); // do të shfaqet 15
?>
Mund të ndodhë që të gjithë numrat e nevojshëm t'i kalojmë në momentin e krijimit të objektit, dhe pastaj menjëherë të duam të gjejmë shumën e tyre:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // do të shfaqet 6
?>
Nëse nuk planifikojmë të bëjmë më shumë
manipulime me objektin, atëherë kodi i mësipërm mund
të rishkruhet më shkurt: mund të krijojmë një objekt dhe
menjëherë të thirrim metodën e tij getSum:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // do të shfaqet 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);
}
}
?>
Le të themi se me këtë klasë keni punuar në mënyrën e mëposhtme:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Rishkruani këtë kod përmes thirrjes së klasës në vend.