متغیر ها و توابع Static
به متغیر ها و توابع static برخلاف متغیر ها و توابع معمولی می توان بدون ایجاد شئ از کلاس، دسترسی داشت.
نحوه دسترسی:
نام متغیر یا تابعی که static تعریف شده :: نام کلاس
چهار محدوده نمایش وجود دارد:
- public : منبع مورد نظر در هر قسمتی قابل استفاده می باشد.
- protected : فقط در کلاسی که تعریف شده و کلاس هایی که آن را توسعه می دهند قابل استفاده می باشد.
- private : فقط در کلاسی که تعریف شده قابل استفاده می باشد.
- 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