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;
?>
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام