PHP OOP - متدهای Static

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
۱OOP چیست؟
۲کلاس‌ها و اشیاء
۳متد سازنده
۴متد نابودگر
۵مشخص کننده‌های دسترسی
۶ارث بری
۷ثابت‌های کلاس
۸کلاس‌های Abstract
۹Traits
۱۰متدهای Static
۱۱ویژگی‌های Static
پایگاه داده MySQL
XML در PHP
AJAX در PHP
مثال‌های PHP
مرجع PHP


PHP - متدهای Static

متدهای Static را می‌توان به صورت مستقیم فراخوانی کرد - بدون ساخت شی از یک کلاس. [۱]

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

شیوه نوشتار

1 <?php
2 class ClassName {
3   public static function staticMethod() {
4     echo "Hello World!";
5   }
6 }
7 ?>

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

شیوه نوشتار

ClassName::staticMethod();

بگذارید به یک مثال نگاهی بیندازیم:

مثال

 1 <?php
 2 class greeting {
 3   public static function welcome() {
 4     echo "Hello World!";
 5   }
 6 }
 7 
 8 // Call static method
 9 greeting::welcome();
10 ?>

مشاهدهٔ نتیجه


توضیح مثال

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

PHP - مطالب بیشتر در مورد متدهای Static

یک کلاس می‌تواند شامل هم متدهای Static و هم متدهای غیر static باشد. یک متد Static می‌تواند توسط یک متد درون کلاس یکسان با استفاده از کلمه کلیدی self و دو (::): مورد دسترسی قرار گیرد:

مثال

 1 <?php
 2 class greeting {
 3   public static function welcome() {
 4     echo "Hello World!";
 5   }
 6 
 7   public function __construct() {
 8     self::welcome();
 9   }
10 }
11 
12 new greeting();
13 ?>

مشاهدهٔ نتیجه


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

مثال

 1 <?php
 2 class greeting {
 3   public static function welcome() {
 4     echo "Hello World!";
 5   }
 6 }
 7 
 8 class SomeOtherClass {
 9   public function message() {
10     greeting::welcome();
11   }
12 }
13 ?>

مشاهدهٔ نتیجه


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

مثال

 1 <?php
 2 class domain {
 3   protected static function getWebsiteName() {
 4     return "W3Schools.com";
 5   }
 6 }
 7 
 8 class domainW3 extends domain {
 9   public $websiteName;
10   public function __construct() {
11     $this->websiteName = parent::getWebsiteName();
12   }
13 }
14 
15 $domainW3 = new domainW3;
16 echo $domainW3 -> websiteName;
17 ?>

مشاهدهٔ نتیجه


منابع آموزشی