static-ის გამოყენების მაგალითი OOP-ში PHP-ში
დავუშვათ, გვაქვს User კლასი:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
მოდით, ამ კლასს ვაჩვენოთ თავისი ობიექტების რაოდენობა. ამისთვის შევქმნათ
სტატიკური თვისება count. თავდაპირველად
მივანიჭოთ მნიშვნელობა 0, ხოლო ყოველი ახალი
ობიექტის შექმნისას გავზარდოთ ეს მნიშვნელობა 1-ით.
ჩვენი თვლის მნიშვნელობის გაზრდა ობიექტის კონსტრუქტორში მოხდება:
<?php
class User
{
public static $count = 0; // ობიექტების თვლა
public $name;
public function __construct($name)
{
$this->name = $name;
// ობიექტის შექმნისას თვლის გაზრდა:
self::$count++;
}
}
?>
შევამოწმოთ, რომ ყველაფერი მუშაობს:
<?php
$user1 = new User('user1');
echo User::$count; // გამოიტანს 1-ს
$user2 = new User('user2');
echo User::$count; // გამოიტანს 2-ს
?>
გახადეთ ჩვენი თვლა პრივატული. მისი მნიშვნელობის მიღება მოხდეს სპეციალური მეთოდის მეშვეობით.