متغیر ها و توابع Static

به متغیر ها و توابع static برخلاف متغیر ها و توابع معمولی می توان بدون ایجاد شئ از کلاس، دسترسی داشت.

نحوه دسترسی:

 نام متغیر یا تابعی که static تعریف شده   ::   نام کلاس

چهار محدوده نمایش وجود دارد:

  1. public : منبع مورد نظر در هر قسمتی قابل استفاده می باشد.
  2. protected : فقط در کلاسی که تعریف شده و کلاس هایی که آن را توسعه می دهند قابل استفاده می باشد.
  3. private : فقط در کلاسی که تعریف شده قابل استفاده می باشد.
  4. final : در هر جایی قابل استفاده می باشد، اما در کلاس های توسعه دهنده نمی تواند دوباره تعریف شود.(final به کلاس ها نیز میتواند تخصیص یابد، کلاس هایی که به صورت final تعریف شده اند، نمی توانند توسعه یابند.)

مثال: در مثال زیر متغیر name و تابع ()action به صورت static تعریف شده است:

<?php
class My_Class{
    static $name="Beyamooz.com is for tutorial\n";
    static function action()
    {
        echo "PHP is easy!!\n";
    }
}
My_Class::action();
echo My_Class::$name;
$obj=new My_Class();
$obj->action();
//echo $obj->name;  Undefined "Property" name 
echo $obj::$name;
?>

خروجی کد بالا:

PHP is easy!!
Beyamooz.com is for tutorial
PHP is easy!!
Beyamooz.com is for tutorial

توجه: به متغیرهای Static یک کلاس، نمی توان از طریق شیء و عملگر فلش (<-) دسترسی داشت (با خطایUndefined "Property" name مواجه خواهید شد.)


آموزش های مرتبط

آموزش PHP-متغییر static