Metode-aanroep direk na objekskepping in OOP in PHP
Kom ons neem aan ons het 'n klas Arr wat
'n array van getalle stoor en die som van hierdie
getalle kan bereken met behulp van die metode getSum.
Die getalle self word as 'n array na die konstruktor
van die objek gestuur, en kan ook een vir een
bygevoeg word met die metode 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);
}
}
?>
Hier is 'n voorbeeld van die gebruik van die klas Arr:
<?php
$arr = new Arr([1, 2, 3]);
$arr->add(4);
$arr->add(5);
echo $arr->getSum(); // sal 15 uitdruk
?>
Dit kan wees dat ons al die nodige getalle tydens die skepping van die objek oorhandig, en dan dadelik hul som wil vind:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // sal 6 uitdruk
?>
As ons nie van plan is om enige verdere
manipulasies met die objek te doen nie, kan
die kode hierbo korter geskryf word: ons kan
'n objek skep en dadelik sy metode getSum
roep:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // sal 6 uitdruk
?>
<?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);
}
}
?>
Kom ons neem aan hierdie klas is so gebruik:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Herskryf hierdie kode deur die klas ter plekke aan te roep.