Kald af metode umiddelbart efter oprettelse af objekt i OOP i PHP
Lad os sige, at vi har klassen Arr, som
gemmer et array af tal og kan beregne
summen af disse tal ved hjælp af metoden getSum.
Tallene selv kommer som et array til konstruktøren
af objektet og kan også tilføjes enkeltvis
ved hjælp af metoden 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);
}
}
?>
Her er et eksempel på brug af klassen Arr:
<?php
$arr = new Arr([1, 2, 3]);
$arr->add(4);
$arr->add(5);
echo $arr->getSum(); // vil udskrive 15
?>
Det kan ske, at alle de nødvendige tal bliver sendt på tidspunktet for oprettelsen af objektet, og derefter straks ønsker at finde deres sum:
<?php
$arr = new Arr([1, 2, 3]);
echo $arr->getSum(); // vil udskrive 6
?>
Hvis vi ikke planlægger at foretage yderligere
manipulationer med objektet, kan koden ovenfor
omskrives mere kort: man kan oprette objektet og
straks kalde dets metode getSum:
<?php
echo (new Arr([1, 2, 3]))->getSum(); // vil udskrive 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);
}
}
?>
Lad os sige, at der er arbejdet med denne klasse på følgende måde:
<?php
$str = new Str('aaa');
$str->append('bbb');
$str->append('ccc');
echo $str->getLength();
?>
Omskriv denne kode ved at kalde klassen på stedet.