Statische methoden binnen een klasse in OOP in PHP
Als je statische methoden wilt gebruiken
binnen een klasse, dan moet je ze benaderen
niet via $this->, maar met behulp van
self::.
Laten we als voorbeeld aan onze klasse Math
methode getDoubleSum toevoegen, die
het dubbele van de som van getallen zal vinden. We gebruiken
binnen de nieuwe methode de reeds bestaande methode
getSum:
<?php
class Math
{
// Laten we de dubbele som vinden:
public static function getDoubleSum($a, $b)
{
return 2 * self::getSum($a, $b); // gebruiken we een andere methode
}
public static function getSum($a, $b)
{
return $a + $b;
}
public static function getProduct($a, $b)
{
return $a * $b;
}
}
?>
Laten we de nieuwe methode gebruiken:
<?php
echo Math::getDoubleSum(1, 2);
?>
Pas de methoden van de volgende klasse aan naar statisch:
<?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;
}
}
?>