PHP OOP හි වස්තුවක් සාදන විගසම ක්‍රමයක් ඇමතීම

අපට Arr Arr පන්තියක් ලබා දී ඇතැයි සිතමු, එය සංඛ්‍යා අරාවක් තුළ ගබඩා කරන අතර ක්‍රමය භාවිතයෙන් මෙම සංඛ්‍යාවල එකතුව ගණනය කළ හැකිය getSum. එම සංඛ්‍යා පරාමිතියක් ලෙස ලැබෙන්නේ වස්තුවේ ගොඩනැගිලි කරුවා වෙත යවනු ලබන අරාවක් ලෙසය, තවද ක්‍රමය භාවිතයෙන් ඒවා තනි තනිව එකතු කළ හැකිය add:

php<?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 Arr පන්තිය භාවිතා කිරීමේ උදාහරණය මෙන්න:

php<?php
  $arr = new Arr([1, 2, 3]);
  
  $arr->add(4);
  $arr->add(5);
  
  echo $arr->getSum(); // 15 පෙන්වයි
?>

විය හැකි දෙය නම්, අවශ්‍ය සියලුම සංඛ්‍යා අපි වස්තුව නිර්මාණය වන මොහොතේදී පරාමිතියක් ලෙස යවන අතර, ඉන්පසු ක්ෂණිකව ඒවායේ එකතුව සොයා ගැනීමට අවශ්‍ය වීමයි:

php<?php
  $arr = new Arr([1, 2, 3]);
  echo $arr->getSum(); // 6 පෙන්වයි
?>

වස්තුව සමඟ තවත් කිසිදු හසුරුවල් කිරීමට අපි අදහස් නොකරන්නේ නම්, ඉහත කේතය කෙටි කොට යළි ලිවිය හැකිය: වස්තුව නිර්මාණය කර ක්ෂණිකවම එහි ක්‍රමය ඇමතිය හැකිය getSum:

php<?php
  echo (new Arr([1, 2, 3]))->getSum(); // 6 පෙන්වයි
?>
Задание 1
php<?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<?php
  $str = new Str('aaa');
  $str->append('bbb');
  $str->append('ccc');
  
  echo $str->getLength();
?>

මෙම කේතය ස්ථානයේදීම පන්තිය ඇමතීම හරහා යළි ලියන්න.