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();
?>
Бул кодду классты ошол жерде чакыруу аркылуу кайра жазыңыз.