کلاس‌‌ها و اشیا (PHP 5)
PHP Manual

کلمه کلیدی Static

اعلام اعضا و متدهای کلاس به عنوان استاتیک آنها حتی بدون نمونه نیز در دسترس قرار می‌دهد. یک عضو تعریف شده بصورت استاتیک نمی‌تواند از طریق یک شی نمونه‌سازی شده مورد دسترسی واقع شود (از طریق متد می‌تواند).

برای تطبیق با PHP 4 اگر اعلام visibility بکار رفته باشد آنگاه عضو یا متد بصورتی مورد دسترسی قرار می‌گیرد که public اعلام شده باشد.

بدلیل قابلیت فراخوانی متدهای استاتیک بدون وجود یک نمونه از شی شبه متغیر $this در داخل متد استاتیک در درسترس نیست.

ویژگش‌های Static نمی‌توانند با استفاده از عملگر -> از طریق شی مورد دسترسی واقع گردند.

فراخوانی متدهای غیراستاتیک بصورت استاتیک یک هشدار سطح E_STRICT ایجاد می‌نماید.

همانند سایر متغیرهای استاتیک PHP ویژگی‌های استاتیک توسط literal یا constant مقدار اولیه دریافت می‌کندد; عبارات مجاز نیستند. پس هنگام قرار دادن مقدار اولیه در ویژگی استاتیک integer یا array (به عنوان مثال) شما امکان استفاده از یک متغیر دیگر، مقدار بازگشتی تابع یا شی را نخواهید داشت.

از زمان PHP 5.3.0 می‌توان با استفاده از یک متغیر به یک کلاس ارجاع داد. مقدار متغیر نمی‌تواند کلمه کلیدی باشد (برای نمونه self, parent و static).

Example #1 نمونه عضو Static

<?php
class Foo
{
    public static 
$my_static 'foo';

    public function 
staticValue() {
        return 
self::$my_static;
    }
}

class 
Bar extends Foo
{
    public function 
fooStatic() {
        return 
parent::$my_static;
    }
}


print 
Foo::$my_static "\n";

$foo = new Foo();
print 
$foo->staticValue() . "\n";
print 
$foo->my_static "\n";      // Undefined "Property" my_static 

print $foo::$my_static "\n";
$classname 'Foo';
print 
$classname::$my_static "\n"// As of PHP 5.3.0

print Bar::$my_static "\n";
$bar = new Bar();
print 
$bar->fooStatic() . "\n";
?>

Example #2 نمونه متد Static

<?php
class Foo {
    public static function 
aStaticMethod() {
        
// ...
    
}
}

Foo::aStaticMethod();
$classname 'Foo';
$classname::aStaticMethod(); // As of PHP 5.3.0
?>

کلاس‌‌ها و اشیا (PHP 5)
PHP Manual