ما هي الدوال في PHP؟
تخيّل أنك في مشروع صغير وتكتب نفس رسالة الترحيب في 6 أماكن مختلفة. كل مرة تنسخ السطر نفسه وتعدّل اسم المستخدم. هنا تبدأ الفوضى. الحل المهني هو: الدوال (Functions).
ما هي الدوال في PHP؟
الدالة في PHP هي كتلة كود تحمل اسماً وتقوم بمهمة واضحة. لا يتم تنفيذها عند تعريفها، بل عند استدعائها فقط.
لماذا نستخدم الدوال في PHP؟
- تقليل التكرار: تكتب الكود مرة وتستخدمه مرات كثيرة.
- تنظيم أفضل: كل مهمة في مكان واضح.
- صيانة أسهل: تعديل الدالة مرة ينعكس على كل الأماكن.
- قراءة أسرع: الكود يصبح أقرب للجمل المفهومة.
مثال بسيط يوضح الفكرة
الكود:
<?php
function sayHello() {
echo "مرحباً بك في موقعنا!<br>";
}
sayHello();
sayHello();
?>
ما يظهر في المتصفح:
مرحباً بك في موقعنا!
مرحباً بك في موقعنا!
شرح الكود: عرّفنا دالة باسم sayHello ثم استدعيناها مرتين.
بدل كتابة نفس echo مرتين، كتبناها مرة واحدة داخل دالة.
كيف تقرأ تعريف الدالة؟
function functionName() {
// body
}
function كلمة محجوزة، بعدها اسم الدالة، ثم أقواس للمدخلات (سنتعلمها لاحقاً)، ثم جسم الدالة داخل { }.
أنواع الدوال في PHP
1) دوال جاهزة (Built-in Functions)
تأتي مع PHP مباشرة، مثل date(), strlen(), var_dump().
2) دوال من تعريفك (User-Defined Functions)
تكتبها أنت حسب احتياج المشروع، مثل calculateTotal() أو formatPrice().
مثال على دالة جاهزة في PHP
الكود:
<?php
$name = "Rachid";
echo strlen($name);
?>
ما يظهر في المتصفح:
6
شرح الكود: strlen دالة جاهزة تحسب عدد أحرف النص.
أخطاء شائعة عند بداية تعلم الدوال
- تعريف الدالة ونسيان استدعائها.
- اختيار أسماء غير واضحة للدوال.
- وضع منطق كبير جداً داخل دالة واحدة.
- تكرار نفس الدالة بأسماء مختلفة بدون حاجة.
نصيحة عملية لتنظيم مشروعك
تمرين سريع
- أنشئ دالة باسم
printLineتطبع جملة "تعلم PHP ممتع". - استدع الدالة 3 مرات.
- غيّر نص الجملة داخل الدالة مرة واحدة ولاحظ أن جميع الاستدعاءات تتأثر.
الأسئلة الشائعة — FAQ
ما هي الدالة في PHP؟
كتلة كود قابلة لإعادة الاستخدام تنفذ مهمة محددة عند استدعائها.
لماذا الدوال مهمة؟
لأنها تقلل التكرار، تنظّم الكود، وتسهل الصيانة.
ما الفرق بين الدوال الجاهزة والدوال المخصصة؟
الدوال الجاهزة تأتي مع PHP، والمخصصة تكتبها أنت حسب مشروعك.
هل تعريف الدالة يعني أنها تعمل مباشرة؟
لا، يجب استدعاؤها باسمها حتى تنفذ.