میخوای وارد بازار کار بشی و محصولات خودت رو بفرشی همین الان ثبت نام کن
0

متد ها static در PHP

در مبحث شی‌گرایی در زبان php گاهی نیاز داریم تا برخی پراپرتی‌ها و متدها را به گونه‌ای طراحی کنیم که بدون نیاز به ساخت آبجکت از روی یک کلاس ‌بخصوصی، بتوان آن‌ها را فراخوانی کرد که به این دست پراپرتی‌ها و متدها اصطلاحاً استاتیک گفته می‌شود

برای اضافه کردن یک متد استاتیک به کلاس، از کلمه کلیدی static به صورت زیر استفاده می کنیم :

<?php
class ClassName {
  public static function staticMethod() {
    echo "Hello World!";
  }
}
?>

برای دسترسی به یک متد static  نام کلاس ، دو نقطه ( :: ) و نام متد استفاده کنید:

ClassName::staticMethod();

 

مثال :

<?php
class greeting {
public static function welcome() {
echo “Hello World!”;
}
}

// Call static method
greeting::welcome();
?>

در اینجا ، ما یک متد static را اعلام می کنیم : Welcome (). سپس ، ما با استفاده از نام کلاس و ( :: ) و نام متد (بدون ایجاد نمونه ای از کلاس) ، متد static را فراخوانی می کنیم.


یک کلاس می تواند هر دو روش استاتیک و غیر استاتیک داشته باشد. با استفاده از کلمه کلیدی self  و ( :: ) می توان از یک متد در همان کلاس به یک متد static دسترسی پیدا کرد.

مثال

<?php
class greeting {
public static function welcome() {
echo “Hello World!”;
}
public function __construct() {
self::welcome();
}
}new greeting();
?>

متد static را می توان از متد های کلاسهای دیگر نیز فراخوانی کرد. برای انجام این کار ، متد static باید public باشد :

مثال

<?php
class greeting {
public static function welcome() {
echo “Hello World!”;
}
}
class SomeOtherClass {
public function message() {
 greeting::welcome();
}
}
?>

برای فراخوانی یک متد static  از کلاس فرزند، از کلمه کلیدی parent  درون کلاس فرزند استفاده کنید. در اینجا ، متد static می تواند ublic یا protectedباشد.

مثال

<?php
class domain {
protected static function getWebsiteName() {
return “W3Schools.com”;
}
}
class domainW3 extends domain {
public $websiteName;
public function __construct() {
$this->websiteName = parent::getWebsiteName();
}
}$domainW3 = new domainW3;
echo $domainW3 -> websiteName;
?>

 

نظراتتون رو زیر همین پست با ما به اشتراک بگذارید.

 

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

×

سلام کاربر عزیز

هر سوالی دارید در این بخش هستیم تا شما رو راهنمائی کنیم

روی لوگومون کلیک کنید

× چطور میتونم کمکتون کنم؟