PHP – متدهای استاتیک (Static Methods)

PHP - متدهای استاتیک (Static Methods) چیستند؟

متدهای استاتیک (Static Methods) می‌توانند مستقیماً فراخوانی شوند – بدون نیاز به ایجاد یک نمونه از کلاس.

متدهای استاتیک (Static Methods) با استفاده از کلمه کلیدی static اعلام می‌شوند:

نحو (Syntax)

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

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

نحو (Syntax)

ClassName::staticMethod();

مثال (Example)

<?php
class greeting {
  public static function welcome() {
    echo "Hello World!";
  }
}
// فراخوانی متد استاتیک (Static Method)
greeting::welcome();
?>

توضیح مثال (Example Explained)

اینجا، ما یک متد استاتیک (Static Method) به نام welcome() اعلام می‌کنیم. سپس، ما متد استاتیک (Static Method) را با استفاده از نام کلاس، دو نقطه (::) و نام متد فراخوانی می‌کنیم (بدون ایجاد یک نمونه از کلاس).

PHP - بیشتر درباره متدهای استاتیک (Static Methods)

یک کلاس می‌تواند هم متدهای استاتیک (Static Methods) و هم غیر استاتیک (Non-Static Methods) داشته باشد. یک متد استاتیک (Static Method) می‌تواند از یک متد در همان کلاس با استفاده از کلمه کلیدی self و دو نقطه (::) فراخوانی شود:

مثال (Example)

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

فراخوانی متد استاتیک (Static Method) از متدهای دیگر کلاس‌ها

متدهای استاتیک (Static Methods) همچنین می‌توانند از متدهای دیگر کلاس‌ها فراخوانی شوند. برای این کار، متد استاتیک (Static Method) باید public باشد:

مثال (Example)

<?php
class A {
  public static function welcome() {
    echo "Hello World!";
  }
}
class B {
  public function message() {
    A::welcome();
  }
}
$obj = new B();
echo $obj->message();
?>

فراخوانی متد استاتیک (Static Method) از کلاس فرزند (Child Class)

برای فراخوانی یک متد استاتیک (Static Method) از یک کلاس فرزند (Child Class)، از کلمه کلیدی parent در داخل کلاس فرزند استفاده کنید. در اینجا، متد استاتیک (Static Method) می‌تواند public یا protected باشد.

مثال (Example)

<?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;
?>

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.