اليوم نشرح لكم أحد أهم الاساسيات في جميع لغات البرمجة وهي الدوال أو Functions
الدوال في لغة الـ #php هو يعتبر تجمع من الأكواد البرمجية التي لها وظيفة معينة وعن طريق الدوال يمكننا إستدعاء هذه الأكواد البرمجية في اي برنامج أو في اي فقرة نريد في السكريبت
هي تسمح لك بإعادة إستعمال الشفرات البرمجية بدون الحاجة لكل مرة كتابة الشفرة البرمجية كاملة
الدوال تجعل السكريبت أو البرنامج الخاص بك أكثر تنسيقا وملائم لبيئة العمل بحيث يستطيع فهمه من طرف كل من يراجعه
الدوال أو Functions تمكننا من تقسيم البرامج الى عدة أجزاء صغيرة ويتم العمل على كل جزء لوحده بحيث اذا أردنا تغيير شيء ما نذهب مباشرة للجزء الذي نريد تغييره
الدالة يمكنك إنشاؤها و تحديدها مرة واحدة في البرنامج ثم إستعمالها عدة مرات وفي عدة أماكن
إنشاء وتحديد الدالة أو Function
نقوم بإنشاء وتحديد دالة جديدة عن طريقة هذه الكلمة function ثم بعدا نضع اسم للدالة وفي داخل الدالة (بين القوسين) يمكننا وضع متغيرات التي سيتم تعامل معها الكود الذي بداخل الدالة
أما الوظيفة الأساسية للدالة سيتم وضعها في داخل هذه الرموز {}
مثال عن الدوال:
في هذا المثال قمنا بعمل دالة وقمنا بتسميتها بـ user_info
هذه الدالة وظيفتها هي طباعة الكلمة أو الإسم Mehdi
ثم في السطر الاخير قمنا بإستدعاء الدالة عن طريق
user_info();
يمكنك إضافة هذا الكود الخاص بالإستدعاء في اي فقرة عندك في برنامج أو سكريبتك
عندما ستضيفه سيتم إستدعاء الدالة تنفيد ما يوجد بداخلها من وظائف برمجية
النتيجة هي تم طباعة اسمي في الصفحة
الدالة مع مدخلاتها Parameters
يمكنك وضع مدخلات او باراميترز وهي مثل متغيرات يتم إضافتها من أجل ربطها بالدالة وعمل وظائف وتغييرات في الدالة بحيث نصل للنتيجة التي نريد بإستعمال تلك المدخلات
كما تلاحظ في المثال التالي
لقد قمنا بنفس المثال السابق ولكن أضفنا عليه المدخلات
تم وضع باراميتر username بين القوصين وهو الذي سيكون مسؤولا عن تمرير القيمة التي نريد الدالة بالتعامل معها
بما أن وظيفة الدالة هي طباعة إسم اليوزر
لقد قمنا بإضافة الباراميتر في داخل الكود البرمجي الخاص بالطباعة
أما عندما نريد إستدعاء الدالة
فيجب في هذه الحالة ان يتم ادخال القيمة التي نريد بين القوصين
user_info("Mehdi");
اي اسم وضعناه او كتابة سيتم التعامل معها من طرف الدالة وتنفيد الامر الذي يوجد بداخلها
في هذه الحالة عندما استدعينا الدالة لقد قمنا بادخال اسم بين القوصين والنتيجة التي سنحصل عليها هي الاسم سيتم طباعته على الشاشة
يمكن إستعمال الدالة عدة مرات مع تغيير الباراميترز او ادخال عدة باراميترز في نفس الوقت
النتيجة
في هذه الأمثلة سنستعمل عدة باراميترات
يمكنك وضع فاصلة بينهم
والنتيجة
ارجاع والحصول على قيمة من الدالة
أحيانا قد تريد عمل دالة عندما يتم إستدعاء ستجد فيها قيمة بداخل ويمكنك بعد ذلك إكمال التعامل مع هذه القيمة في أكواد اخرى
كمثال سنقوم بعمل خاصية مثل الالة الحاسبة
سنقوم بعمل وظيفة الجمع وذلك عن طريق هذا النوع من الدوال
فكما ترى في المثال التالي
لقد تم ادخال 2 باراميترز
وتم عمل return
للتوضيح بشكل مبسط وهي تعني ارجاع القيمة
كأنه سيتم ارسال تلك القيمة للمكان الذي سيتم إستدعاء الدالة فيه
قبل إرجاعها قمنا بعمل الجمع بين الباراميترز التي سيتم ادخلاهم في وقت استدعاء الدالة
بما أن الدالة سترجع لنا قيمة معينة ونحن نعرف انها سترجع العدد او الحصيلة
فقمنا بوضعها في متغير خاص من أجل طباعتها
والنتيجة ستكون على الشكل التالي
عمل دوال فيها مدخلات او باراميترز محددة مسبقا
يمكنك عمل دوال وفي نفس الوقت فيها باراميترز يتم تحديدها مسبقا عند إنشاء الدالة بحيث عندما يتم إستدعاء الدالة… ستقوم بتنفيد الوظيفة والتعامل مع المدخل الذي تم تحديده مسبقا
في حالة تم تحديد مدخل جديد عند استدعاء الدالة فلن يتم التعامل مع المدخل المحدد مسبقا
لاحظ في المثال تم تحديد الاسم user مسبقا في وقت انشاء الدالة
لأنه اذا لم يتم إدخال اي اسم اخر في وقت إستدعاء الدالة فسيتم التعامل مع الاسم المحدد مسبقا user
والنتيجة لقد تم طباعة المدخل المحدد مسبقا
أما هذا المثال فهو يحتوي على نوعين
الإستدعاء الأول لم يكون يتوفر على اي مدخلات ولهذا تم العمل بالمدخل المحدد مسبقا
أما الإستدعاء الثاني فقد تم تحديد مدخل او باراميتر وتم تخطي المدخل المحدد مسبقا لأننا الان نتوفر على مدخل قمنا بإضافته أثناء الإستدعاء
المتغيرات في الدوال ( Local) & (Global)
يوجد قوانين خاصة بالتعامل مع المتغيرات في الدوال
يوجد متغير محلي Local
وهو المتغير الذي يتم إنشاؤه في داخل الدالة
هذا المتغير لا يمكن إستدعائه خارج الدالة
أما المتغير العام Global
فهو متغير يوجد في خارج الدالة ولكن لا يمكن إستعماله بداخل الدالة الا بطريقة واحدة وهي بكتابة الكلمة global قبل هذا المتغير
من أجل أن يتم التعرف عليه من طرف اللغة البرمجية بداخل الدالة
مثال عن متغير محلي Local
هذا متغير عادي بداخل الدالة
مثال عن متغير عام Global
هنا في المثال المتغير يوجد بخارج الدالة
ولكي نستطيع التعامل معه بداخل الدالة قمنا بكتابة global قبل المتغير
أمثلة عن الدوال
الدوال لا تقتصر فقط على ما نحن نقوم بعمله أو هي خاصة بنا
يوجد دوال اخرى تم إضافتها مع اللغة PHP بشكل رسمي ويوجد دوال اخرى بداخل مكتبات تم عملها من طرف مبرمجين اخرين
كل دالة من هذه الدوال لها وظيفة خاصة ويتم إستدعائها بنفس الطريقة التي شرحتها لكم في درس اليوم
بعض الأمثلة عن الدوال الاخرى
strlen() هي دالة تمكنك من معرفة طول القيمة الموجودة في داخل متغير من نوع String وستعطيك كم عدد الاحرف في القيمة
النتيجة ستكون هي 2 لأن المتغير يحتوي على كلمة من 2 أحرف
أما الدالة الاخرى
strtoupper() تمكنك من تحويل القيمة الموجودة في متغير من نوع String الى uppercase
النتيجة ستكون كلمة على هذا الشكل
HI
يوجد عدة دوال يمكنك إكتشافها في لغة PHP
كل دالة تختلف عن الاخرى وعن طريق الدوال يمكننا صناعة برامج مختلفة وكبيرة فهي تسهل علينا العمل والإبداع وإنتاج برامج أكثر تنسيقا