Exempel på static i OOP i PHP
Låt oss säga att vi har en sådan här klass User:
<?php
class User
{
public $name;
public function __construct($name)
{
$this->name = $name;
}
}
?>
Låt oss göra så att den här klassen räknar
antalet av sina objekt. För att göra detta skapar vi
en statisk egenskap count. Inledningsvis
sätter vi dess värde till 0, och när vi skapar
varje nytt objekt kommer vi att öka
detta värde med 1.
Vi kommer att öka värdet på vår räknare i objektets konstruktor:
<?php
class User
{
public static $count = 0; // objekträknare
public $name;
public function __construct($name)
{
$this->name = $name;
// Ökar räknaren när objekt skapas:
self::$count++;
}
}
?>
Låt oss kolla att allt fungerar:
<?php
$user1 = new User('user1');
echo User::$count; // skriver ut 1
$user2 = new User('user2');
echo User::$count; // skriver ut 2
?>
Gör vår räknare privat. Låt dess värde kunna hämtas med hjälp av en speciell metod.