Wito wa Njia Mara Baada ya Kuunda Kitu katika OOP katika PHP
Wacha tuwe na darasa Arr ambalo
huhifadhi safu ya nambari ndani yake na kinaweza kuhesabu
jumla ya nambari hizi kwa kutumia njia getSum.
Nambari zenyewe huja kwa mfumo wa safu kwenye mjenzi
wa kitu, na pia zinaweza kuongezwa moja moja
kwa kutumia njia 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);
}
}
?>
Hapa kuna mfano wa matumizi ya darasa Arr:
<?php
$arr = new Arr([1, 2, 3]);
$arr->add(4);
$arr->add(5);
echo $arr->getSum(); // itatoa 15
?>
Inawezekana kuwa nambari zote tunazohitaji tutazipitisha wakati wa kuunda kitu, kisha mara moja tutataka kupata jumla yao:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // itatoa 6
?>
Kama hatupangi tena kufanya manupulazioni yoyote
na kitu hicho, basi msimbo hapo juu unaweza
kuandikwa kwa ufupi: inawezekana kuunda kitu na
mara moja kupiga njia yake getSum:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // itatoa 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);
}
}
?>
Wacha na darasa hili kufanyiwa kazi kama ifuatavyo:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Andika upya msimbo huu kupitia wito wa darasa mahali pake.