Eksempel på static i OOP i PHP
Lad os sige, at vi har følgende klasse User:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Lad os gøre sådan, at denne klasse tæller
antallet af sine objekter. For at gøre dette laver vi
en statisk egenskab count. Initialt
sætter vi dens værdi til 0, og ved oprettelse
af hvert nyt objekt vil vi øge
denne værdi med 1.
Vi vil øge værdien af vores tæller i objektets konstruktør:
<?php
class User
{
public static $count = 0; // objekt tæller
public $name;
public function __construct($name)
{
$this->name = $name;
// Øg tælleren ved oprettelse af objekt:
self::$count++;
}
}
?>
Lad os kontrollere, at alt fungerer:
<?php
$user1 = new User('user1');
echo User::$count; // vil udskrive 1
$user2 = new User('user2');
echo User::$count; // vil udskrive 2
?>
Gør vores tæller privat. Lad dens værdi kunne hentes via en speciel metode.