الفرق بين الدوال الثابتة والمتغيرة في PHP

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 19 ديسمبر 2024

محتوى المقال

الفرق بين الدوال الثابتة والمتغيرة في PHP

الدوال في PHP تُستخدم لتنظيم الكود وجعله أكثر قابلية لإعادة الاستخدام. هناك نوعان من الدوال في PHP: الدوال الثابتة (Static Functions) والدوال المتغيرة (Non-Static Functions). في هذا المقال، سنتعرف على الفرق بين هذين النوعين من الدوال وكيفية استخدام كل منهما.

ما هي الدوال الثابتة في PHP؟

الدوال الثابتة هي دوال يتم تعريفها داخل الكائنات (Classes) ويمكن استدعاؤها دون الحاجة إلى إنشاء كائن من الفئة (Class) التي تحتويها. يتم تعريف الدوال الثابتة باستخدام الكلمة المفتاحية static. هذه الدوال تكون مرتبطة بالفئة نفسها وليس بأي كائن معين.

كيفية تعريف دالة ثابتة

لإنشاء دالة ثابتة، نستخدم الكلمة المفتاحية static قبل اسم الدالة. يمكننا استدعاء الدالة الثابتة باستخدام اسم الفئة متبوعًا بعلامة :: واسم الدالة.

مثال على دالة ثابتة

<?php
class MathOperations {
    public static function add($a, $b) {
        return $a + $b;
    }
}

// استدعاء الدالة الثابتة بدون إنشاء كائن
$result = MathOperations::add(5, 10);
echo $result; // سيعرض 15
?>

في هذا المثال، قمنا بتعريف دالة ثابتة باسم add داخل فئة MathOperations. يمكننا استدعاء الدالة مباشرة باستخدام اسم الفئة MathOperations دون الحاجة إلى إنشاء كائن من هذه الفئة.

ما هي الدوال المتغيرة في PHP؟

الدوال المتغيرة هي الدوال العادية التي تُعرّف داخل الفئات (Classes) ولكن لا يمكن استدعاؤها إلا من خلال كائنات الفئة. هذه الدوال تكون مرتبطة بالكائنات التي تنشأ من الفئة، ويمكنها الوصول إلى خصائص (Properties) هذه الكائنات.

كيفية تعريف دالة متغيرة

لتعريف دالة متغيرة، نقوم بإنشاء دالة داخل الفئة دون استخدام الكلمة المفتاحية static. لاستدعاء هذه الدالة، يجب إنشاء كائن من الفئة أولًا.

مثال على دالة متغيرة

<?php
class User {
    public function greet() {
        echo "مرحبًا بك!";
    }
}

// إنشاء كائن من الفئة واستدعاء الدالة المتغيرة
$user = new User();
$user->greet();
?>

في هذا المثال، قمنا بتعريف دالة متغيرة باسم greet داخل فئة User. لاستدعاء هذه الدالة، قمنا بإنشاء كائن من الفئة User ثم استدعينا الدالة باستخدام هذا الكائن.

الفرق الرئيسي بين الدوال الثابتة والمتغيرة

الفرق الأساسي بين الدوال الثابتة والمتغيرة يكمن في كيفية استدعائها وعلاقتها بالكائنات والفئات:

  • الدوال الثابتة: يمكن استدعاؤها مباشرةً باستخدام اسم الفئة دون الحاجة إلى إنشاء كائن من الفئة. هذه الدوال مرتبطة بالفئة نفسها وليست بأي كائن معين.
  • الدوال المتغيرة: لا يمكن استدعاؤها إلا من خلال كائن من الفئة. هذه الدوال مرتبطة بالكائن ويمكنها الوصول إلى خصائص هذا الكائن.

متى نستخدم الدوال الثابتة والمتغيرة؟

يعتمد اختيارك بين استخدام دالة ثابتة أو متغيرة على السياق واحتياجاتك البرمجية:

  • استخدم الدوال الثابتة عندما:
    • تحتاج إلى وظيفة يمكن استخدامها بشكل مستقل عن الكائنات.
    • لا تحتاج إلى الوصول إلى خصائص الكائن.
  • استخدم الدوال المتغيرة عندما:
    • تحتاج إلى التفاعل مع خصائص الكائن.
    • تريد أن تكون الدالة جزءًا من سلوك الكائن المحدد.

الخلاصة

الدوال الثابتة والمتغيرة هما أدوات قوية في PHP تساعدك في كتابة كود منظم ومرن. معرفة الفرق بينهما يساعدك في اختيار النوع المناسب لكل سيناريو برمجي، مما يسهم في بناء تطبيقات أكثر كفاءة وسهولة في الصيانة.

طور مهاراتك: مقالات يجب قراءتها في البرمجة