Các phương thức tĩnh bên trong class trong OOP PHP
Nếu bạn muốn sử dụng các phương thức tĩnh
bên trong class, thì nên truy cập chúng
không qua $this->, mà bằng cách sử dụng
self::.
Để làm ví dụ, hãy thêm vào class Math của chúng ta
phương thức getDoubleSum, nó sẽ
tìm tổng gấp đôi của các số. Chúng ta sử dụng
bên trong phương thức mới một phương thức đã tồn tại
getSum:
<?php
class Math
{
// Hãy tìm tổng gấp đôi:
public static function getDoubleSum($a, $b)
{
return 2 * self::getSum($a, $b); // sử dụng phương thức khác
}
public static function getSum($a, $b)
{
return $a + $b;
}
public static function getProduct($a, $b)
{
return $a * $b;
}
}
?>
Hãy sử dụng phương thức mới:
<?php
echo Math::getDoubleSum(1, 2);
?>
Hãy chuyển đổi các phương thức của class sau sang dạng tĩnh:
<?php
class ArraySumHelper
{
public function getSum1($arr)
{
return $this->getSum($arr, 1);
}
public function getSum2($arr)
{
return $this->getSum($arr, 2);
}
public function getSum3($arr)
{
return $this->getSum($arr, 3);
}
public function getSum4($arr)
{
return $this->getSum($arr, 4);
}
private function getSum($arr, $power) {
$sum = 0;
foreach ($arr as $elem) {
$sum += pow($elem, $power);
}
return $sum;
}
}
?>