Օբյեկտը ստեղծելուց անմիջապես հետո մեթոդի կանչը 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();
?>
Վերագրեք այս կոդը դասի կանչի միջոցով տեղում: