Static Properties in PHP

By: Andi, Stig and Derick  

Classes can declare properties. Each instance of the class (i.e., object) has its own copy of these properties. However, a class can also contain static properties. Unlike regular properties, these belong to the class itself and not to any instance of it. Therefore, they are often called class properties as opposed to object or instance properties. You can also think of static properties as global variables that sit inside a class but are accessible from anywhere via the class.

Static properties are defined by using the static keyword:

class MyClass {

static $myStaticVariable;

static $myInitializedStaticVariable = 0;


To access static properties, you have to qualify the property name with the class it sits in


print MyClass::$myInitializedStaticVariable;

This example prints the number 1.

If you’re accessing the member from inside one of the class methods, you may also refer to the property by prefixing it with the special class name self, which is short for the class to which the method belongs:

class MyClass {

static $myInitializedStaticVariable = 0;

function myMethod()


print self::$myInitializedStaticVariable;



$obj = new MyClass();


This example prints the number 0.

You are probably asking yourself if this whole static business is really useful. One example of using it is to assign a unique id to all instances of a class:

class MyUniqueIdClass {

static $idCounter = 0;

public $uniqueId;

function __construct()



$this->uniqueId = self::$idCounter;



$obj1 = new MyUniqueIdClass();

print $obj1->uniqueId . "\n";

$obj2 = new MyUniqueIdClass();

print $obj2->uniqueId . "\n";

This prints



The first object’s $uniqueId property variable equals 1 and the latter object equals 2.

Archived Comments

Most Viewed Articles (in PHP )

Latest Articles (in PHP)

Comment on this tutorial