การเรียกใช้งานเมธอดทันทีหลังจากสร้างอ็อบเจ็กต์ใน 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();
?>
เขียนโค้ดนี้ใหม่โดยใช้การเรียกใช้งาน คลาสแบบทันที