Дар ООП дар PHP даъват кардани усул баъди сохтани объект
Фарз мекунем, ки мо синфи Arr-ро дорем, ки
массиви ададҳоро дар худ нигоҳ медорад ва метавонад
ҷамъи ин ададҳоро бо ёрии усули getSum ҳисоб кунад.
Худи ададҳо дар шакли массив ба созандаи (конструктор)
объект мерасанд ва инчунин метавонанд як-як
бо ёрии усули 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);
}
}
?>
Инҳоянд мисоли истифодаи синфи Arr:
<?php
$arr = new Arr([1, 2, 3]);
$arr->add(4);
$arr->add(5);
echo $arr->getSum(); // 15-ро хориҷ мекунад
?>
Аз ин болотар ин метавонад чунин бошад, ки ҳамаи ададҳои лозимро мо дар лаҳзаи эҷоди объект мегузаронем, ва баъд аз он дарҳол мехоҳем, ки ҷамъи онҳоро ёбем:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // 6-ро хориҷ мекунад
?>
Агар мо дигар ҳеҷ табдилдиҳиеро бо объект
намеандешем, пас рамзи дар боло овардашударо метавон
ба таври кӯтоҳтар навишт: метавон объект сохт ва
дарҳол усули getSum-и онро даъват кард:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // 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);
}
}
?>
Фарз мекунем, ки бо ин синф чунин кор карданд:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Ин рамзеро тавассути даъвати синф дар ҷои худ нависед.