Παράδειγμα χρήσης του static στην ΑΟΠ στην 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
?>
Κάντε τον μετρητή μας ιδιωτικό. Η τιμή του θα πρέπει να μπορεί να ανακτάται μέσω μιας ειδικής μεθόδου.