دوال بي اتش بي PHP Functions
قوة PHP تأتي من الدوال Functions التي توفرها والتي تسهل عملك مع اي نوع من انواع البيانات حيث انها توفر أكثر من ١٠٠٠ دالة
أنواع الدوال في PHP
لدينا ٣ انواع مهمة من الدوال في PHP
- Built-in Functions وهي دوال من أساس اللغة وهي ماتوفرها لك PHP لتستخدمها مباشرة
-
User Defined Functions وهي الدوال التي نقوم بإنشائها وإستخدامها في مشاريعنا البرمجية
-
دوال المكتبات الإضافية مثل مكتبة GD للصور يتطلب تثبيتها وتفعيلها حتى نتمكن من إستخدامها
ماهي User Defined Functions
وهي الدوال التي نقوم بتعريفها وإنشائها لنستخدمها عند كتابة أكواد PHP وهي مايهمنا هنا
وهي عبارة عن مجموعة من الأكواد البرمجية يتم تعريفها بصيغة محددة لإنشاء دالة function ويمكن إستخدام هذه الدالة بأكثر من مكان داخل ملفات المشروع البرمجي
عند تعريف أي دالة جديدة داخل ملف فإنه لن يتم تنفيذ محتواها مباشرة عند فتح الملف بالمتصفح
سوف يتم تنفيذ محتوى الدالة مباشرة عند إستدعاء الدالة فقط
صيغة كتابة الدالة في PHP
كتابة الدوال وتعريفها سهل جدا كل ماعليك هو تعريف الدالة بإستخدام الكلمة function ثم كتابة إسم الدالة وبعدها مباشرة نستخدم علامتي الأقواس () متبوعة بالأقواس المعقوفة {} وداخل الأقواس المعقوفة {} نضع الأوامر البرمجية التي نرغب بتنفيذها عند إستدعاء الدالة
مثال مبسط لصيغة كتابة دالة بسيطة Basic Function Syntax
function functionName() {
code to be executed;
}
ملاحظات عند تسمية الدوال
- اسم الدالة يمكن ان يبدأ بحروف او علامة underscore فقط
- اسم الدالة لايمكن ان يبدأ بأرقام أبدا
- إذا كان لابد من وجود ارقام بمسمى الدالة يجب ان يكون اول الإسم حرف أو underscore ثم الرقم
- حاول قدر المستطاع ان يكون الإسم يعكس عمل الدالة
- إبتعد عن المسميات الطويلة
- مسميات الدوال غير حساسة عند الكتابة NOT case-sensitive
دالة بسيطة
الآن سنقوم بتعريف أول دالة بسيطة عملها طباعة نص بالمتصفح عند زيارة الملف
الكود الذي سنكتبه هو التالي
<?php
// define the function
function name() {
echo "Hello ali!";
}
في هذا المثال عرفنا اول دالة لنا وأسميناها name وتقوم بطباعة رسالة للمتصفح عند زيارة الملف عن طريق localhost ولكن لن يتم تنفيذ محتوى الدالة حتى نقوم بإستدعاء الدالة وهي جدا بسيطة كل ماعليك هو استخدام اسم الدالة متبوعة بالأقواس () وسوف يتم تنفيذ محتوى الدالة مباشرة عند زيارة الملف من المتصفح بإستخدام السيرفر المحلي
تكملة للمثال السابق قم بتعديل الكود للتالي
<?php
// define the function
function name() {
echo "Hello ali!";
}
// call the function
name();
عند عرض الملف بالمتصفح فإن الناتج كالتالي
مدخلات الدوال Function Arguments
يمكن تمرير المعلومات للدالة عن طريق المدخلات Arguments وهذه المدخلات تشبه المتغيرات ويمكن تعريف أكثر من مدخل للدالة كل ماعليك داخل علامتي الأقواس كتابة أسماء المدخلات مفصولين عن بعض بعلامة الفاصلة
لو أخذنا المثال السابق وأضفنا مدخل firstName لتصبح الدالة أكثر مرونة وتطبع إسم نقوم بتحديده عند إستدعاء الدالة سيكون شكل الكود كالتالي
<?php
// define the function with argument
function name($firstName) {
echo "Hello $firstName! ";
}
// call the function and insert argument
name('ali');
name('abdullah');
name('moath');
المميز هنا نستطيع إستخدام الدالة أكثر من مرة وجعلها مرنة لطباعة نصوص مختلفة بناء على المدخل الذي نمرره للدالة عند إستدعائها
عند عرض الملف بالمتصفح فإن الناتج كالتالي
وممكن أيضا تعريف أكثر من مدخل فلو أخذنا الكود السابق وأضفنا مدخل جديد بإسم age لطباعة عمر الشخص أيضا سيكون شكل الكود كالتالي
<?php
// define the function with 2 argument
function name($firstName, $age) {
echo "Hello $firstName You are $age Year Old ";
}
// call the function and insert 2 argument
name('ali', 28);
name('abdullah', 25);
name('moath', 24);
عند عرض الملف بالمتصفح فإن الناتج كالتالي
القيم الإفتراضية للمدخلات Default Argument Value
أحيانا عند تعريف الدالة وإضافة مدخلات فإنك ترغب بتعيين قيم إفتراضية لبعض المتغيرات ليتم إستخدام هذه القيم في حالة تم إستدعاء الدالة ولم يتم تمرير قيمة للمدخل لتكون الدالة أكثر مرورنة ولتلافي حدوث الأخطاء عند إستدعاء دالة لتنفيذ أوامرها فلو أخذنا المثال السابق وعند إستدعاء الدالة لم نقم بإدخال قيمة للمدخل age لأول إستدعاء ليكون شكل الكود كالتالي
<?php
// define the function with 2 argument
function name($firstName, $age) {
echo "Hello $firstName You are $age Year Old ";
}
// call the function and insert 2 argument
name('ali');
name('abdullah', 25);
name('moath', 24);
عند عرض الملف بالمتصفح فإن الناتج كالتالي
ستلاحظ وجود خطأ يخبرك بأنك لم تقم بإدخال قيمة للمدخل الثاني عند إستدعاء الدالة name
لحل هذه المشكلة نقوم بتعيين قيمة إفتراضية للمدخل age عند تعريف الدالة ليتم إستخدام هذه القيمة إفتراضيا عندما نستدعي الدالة ولاندخل قيمة للمدخل age سنقوم بتعديل المثال السابق ليصبح شكل الكود كالتالي
<?php
// define the function with 2 argument and assign default value for 2nd argument
function name($firstName, $age = 28) {
echo "Hello $firstName You are $age Year Old ";
}
// call the function and insert 2 argument
name('ali');
name('abdullah', 25);
name('moath', 24);
عند عرض الملف بالمتصفح فإن الناتج كالتالي
إرجاع القيم Returning values
أحيانا عند العمل مع الدوال فأنت لاترغب ان تقوم الدالة بطباعة نص وإنما ان تعيد الدالة قيمة محددة يمكن ذلك بإستخدام return داخل الدالة بكل سهولة سنقوم بعمل دالة جديد تقوم بعملية حسابية على مدخلين ثم إرجاع قيمة الناتج بإستخدام return ثم بعد ذلك سنطبع الناتج للمتصفح
<?php
// define the function with 2 argument
function sum($x, $y) {
$z = $x + $y;
return $z;
}
// we print the results after we call the function and insert the arguments
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
عند عرض الملف بالمتصفح فإن الناتج كالتالي
محتوى الدورة
الكلمات الدليلية
عن الدرس
1 إعجاب |
0 متابع |
0 مشاركة |
23242 مشاهدات |
منذ 8 سنوات |
التعليقات (1)
سلام عليكم اخوي اتمنى مساعدتك ... عندي واجب منزلي ومش عارف احله اللي هو
الواجب العملي األول لبرمجة صفحات اإلنترنت احفظ ملف البرنامج باسم homework في برنامج المفكرة و استخدام لغة البرمجة php؟
............... التدريب 1 1 -انشاء دالة باسم "homework1"؟ 2 -وظيفة الدالة حساب معدل الطالب حسب ما يلي: تعريف متغير لرقم الطالب باسم id واسناد قيمة له وتعريف متغير لالسم name واسناد قيمة له؟ تعريف متغير لمجموع النقاط التي حصل عليها الطالب باسم total_p واسناد قيمة ابتدائية له؟ 120 نقطة تعريف متغير لعدد الساعات التي درسها الطالب باسم hour_t واسناد قيمة ابتدائية له؟ 30 ساعة تعريف متغير للمعدل باسم GPA واسناد المعادلة التالية لحساب المعدل hour_t/total_p=GPA في حالة ان الساعات التي درسها الطالب أقل من 68 ساعة وإذا كانت غير ذلك يعمل على طباعة عبارة "الطالب أكمل جميع المقررات الدراسية"؟ طباعة رقم الطالب واالسم وعدد الساعات وعدد النقاط والمعدل في جدول؟ 3 -استدعاء الدالة للتنفيذ؟ ......................... التدريب 2 1 -انشاء دالة باسم "homework2"؟ 2 -تعريف متغير لرقم العملية باسم "num_op "واحتمال إمكانية أن يسند له احدى القيم التالية 1 أو 2 أو 3؟ 3 -استخدام جملة التحكم بسير البرنامج () IF للحاالت التالية: إذا كان رقم العملية 1 يطبع األرقام من 10 الى 1 باستخدام حلقة التكرار () for؟ إذا كان رقم العملية 2 يطبع األرقام من 10 الى 1 باستخدام حلقة التكرار () while؟ إذا كان رقم العملية 2 يطبع األرقام من 10 الى 1 باستخدام حلقة التكرار () while-do؟ إذا لم يكن رقم العملية 1 أو2 أو3 يقوم بطباعة "القيمة غير معروفة حاول مرة أخرى"؟........................... التدريب 3 1 -انشاء دالة باسم "homework3"؟ 2 -تعريف متغير لرقم العملية باسم "num_op "واحتمال إمكانية أن يسند له احدى القيم التالية 1 أو 2 أو 3؟ 3 -استخدام جملة التحكم بسير البرنامج () switch للحاالت التالية: إذا كان رقم العملية 1 يطبع األرقام من 1 الى 10 باستخدام حلقة التكرار () for؟ إذا كان رقم العملية 2 يطبع األرقام من 1 الى 10 باستخدام حلقة التكرار () while؟ إذا كان رقم العملية 2 يطبع األرقام من 1 الى 10 باستخدام حلقة التكرار () while-do؟ إذا لم يكن رقم العملية 1 أو2 أو3 يقوم بطباعة "القيمة غير معروفة حاول مرة أخرى"؟
هذا التويتر تبعي لو عرفت اتمنى تراسلني .. تويتر i9qi
سناب i-hro
عرض المزيد.. جديد دوراتي
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !