OOP - Static Methods

🔹 Static Method چیست؟

  • متدهایی هستند که با کلمه کلیدی static تعریف میشن.

  • برای استفاده از اون‌ها نیازی به ایجاد شیء (Object) از کلاس نداریم.

  • مستقیماً با نام کلاس قابل دسترسی هستن.

🔹 تعریف یک Static Method

<?php class Greeting { public static function welcome() { echo "Hello World!"; } } // استفاده بدون ساختن شیء Greeting::welcome(); ?>

📌 خروجی:

Hello World!

🔹 دسترسی به Static Method از داخل کلاس

داخل کلاس می‌تونیم از self:: برای فراخوانی متد استاتیک استفاده کنیم:

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

📌 خروجی:

Hello World!

🔹 تفاوت Static Method با متد معمولی

  • متد معمولی: برای استفاده نیاز به یک شیء از کلاس داره.

  • Static Method: بدون شیء و مستقیماً از روی کلاس قابل فراخوانی هست.

🔹 ارث‌بری و Static Methods

متدهای استاتیک در کلاس‌های فرزند هم قابل استفاده هستن:

<?php class ParentClass { public static function hello() { echo "Hello from Parent!"; } } class ChildClass extends ParentClass {} ChildClass::hello(); ?>

📌 خروجی:

Hello from Parent!

✅ خلاصه

  • متدهای static با کلمه کلیدی static تعریف میشن.

  • برای استفاده از اون‌ها نیازی به ساخت Object نیست.

  • میشه اون‌ها رو با ClassName::methodName() یا داخل کلاس با self::methodName() صدا زد.

  • در ارث‌بری هم به صورت مستقیم در کلاس فرزند قابل استفاده هستن.