⊗ppOpCgCC 43 of 107 menu

ობიექტის შექმნისთანავე მეთოდის გამოძახება OOP-ში 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(); ?>

გადაწერეთ ეს კოდი კლასის ადგილზე გამოძახების გზით.

azbydeenesfrkakkptruuz