Sınıflar ve Nesneler
PHP Manual

static Anahtar Sözcüğü

Sınıf özelliklerinin ya da yöntemlerinin static olarak tanımlanması, o özelliklerin ve yöntemlerin sınıf örneğinin oluşturulmasına gerek kalmadan erişilebilir olmalarını sağlar. Ancak, static olarak bildirilmiş bir özelliğe (duruk özellik) örneklenmiş sınıf nesnesinden erişilemez (ise de static olarak bildirilmiş bir yöntemle erişebilir).

PHP 4 ile uyumluluğun sağlanabilmesi için, eğer bir özellik veya yöntem için hiçbir görünürlük tanımı yapılmamışsa public olarak tanımlanmış varsayılır.

Duruk yöntemlerin, nesnenin bir örneği oluşturulmadan erişilebilir olmalarından dolayı, $this sözde değişkeni, static olarak bildirilmiş bir yöntemin içinde kullanılamaz.

Duruk özelliklere, nesne üzerinden ok işleci (->) kullanılarak erişilemez.

Duruk olmayan özellikler durukmuş gibi çağrılırsa E_STRICT seviyesinde bir uyarı üretilir.

PHP'nin diğer duruk değişkenlerinde olduğu gibi duruk özellikler de sadece bir sayıl veya sabit kullanılarak ilklendirilebilir; ifadelere izin verilmez. Yani, bir duruk özelliği örneğin, bir tamsayı veya bir dizi ile ilklendirebilirsiniz ama örneğin, bir işlevin dönen değeri, bir değişken veya bir nesne ile ilklendiremezsiniz.

PHP 5.3.0 ve sonrasında, bir sınıfa bir değişken kullanarak gönderim yapılabilmektedir. Böyle bir değişkenin değeri self, parent veya static gibi bir anahtar sözcük olamaz.

Örnek 1 - Duruk özellik örneği

<?php
class Falanca
{
    public static 
$duruk 'falanca';

    public function 
durukDeğer() {
        return 
self::$duruk;
    }
}

class 
Feşmekan extends Falanca
{
    public function 
falancaDuruk() {
        return 
parent::$duruk;
    }
}


print 
Falanca::$duruk "\n";

$falanca = new Falanca();
print 
$falanca->durukDeğer() . "\n";
print 
$falanca->duruk "\n";      // Tanımsız "Özellik" duruk

print $falanca::$duruk "\n";
$sınıfadı 'Falanca';
print 
$sınıfadı::$duruk "\n"// PHP 5.3.0 ve sonrası

print Feşmekan::$duruk "\n";
$feşmekan = new Feşmekan();
print 
$feşmekan->falancaDuruk() . "\n";
?>

Örnek 2 - Duruk yöntem örneği

<?php
class Falanca {
    public static function 
birDurukYöntem() {
        
// ...
    
}
}

Falanca::birDurukYöntem();
$sınıfadı 'Falanca';
$sınıfadı::birDurukYöntem(); // PHP 5.3.0 ve sonrası

?>

Sınıflar ve Nesneler
PHP Manual