على بركة الله نبدأ الدرس الخامس
الفصل الأول :بدائيات لغة PHP
*االدوال :
-كيفية كتابة الدوال والمناداة عليها : باستعمال لغة PHP ستكونون يوما ما مضطرين لكتابة روتينات لأجراء بحسابات ما أو مقارنة مجموعة من الأعداد أو الكلمات ,في الدرس السابق رأينا كيفية التعامل بين المتغيرات والحسابات الممكنة فيما بينها.أما في هذا الدرس فلن ألقنكم أساسيات الرياضيات كل ما سنراه هو كيفية جعل بعض الحسابات أن تكون أوتوماتكية بواسطة الدوال.
فلغة PHP كجميع لغات البرمجة تستعمل بدورها الدوال.
-تعريف دالة :هي مجموعة من التعابير التي ترجع لنا قيمة ما
عموما تنشئ هذه الدوال عندما نرغب في كتابة تعابير كثيرة أو جد معقدة فنقوم بالمناداة عليها:
*أنت أيتها الدالة CalculCube ,أعطني حجم المكعب الذي يساوي ضلعه 4 cm
-تقوم الدالة بالحسابات الممكنة وتجيبك:المكعب حجمه :64 cm3
اذا كنتم تريدون القيام بحساب حجم مكعب واحد فالأمر سهل بحيث يمكنكم ذلك دون استعمال أي دالة.لكن تخيلوا معي اذا كنتم تريدون القيام بحساب حجم 5 مكعبات؟ 10 مكعبات ؟أو 100 مكعب
؟
سنعطي أمثلة لأستعمال الدوال :
-مثال :SayHelloمن المتعب تحية كل عضو على حدى في موقعك ,أليس كذلك ؟
يكون من الجيد جدا جعله أوتوماتكيا !.لهذا وجدت الدوال .
كود PHP:
$nom = "محمود";
echo "Hello, $nom !
";
$nom = "أحمد";
echo "Hello, $nom !
";
$nom = "ابراهيم";
echo "Hello, $nom !";
?> كما لاحظتم فهو جد متعب تحية كل عضو على حدى.لهدا قمنا بكتابة دالة تقوم بهدا مكاننا:
كود PHP:
function SayHello($nom)
{
echo "Hello $nom !
";
}
SayHello("محمود");
SayHello("أحمد");
SayHello("ابراهيم");
SayHello("يس");
SayHello("عبد الرحمان");
SayHello("كريم");
SayHello("عمرو");
?> اذن ما هو الفرق بين الكتابتين :
-لقد استعملنا الدالة في طباعة تحية الأعضاء وفي الأسطر الأولى في الكود الثاني هناك تعريف للدالة:اسمها وماهو موكل لها القيام به ,لاحظ ان العبارة function يجب ان تقوم بكتابتها اذا اردت ان تقوم بإنشاء دالة خاصه بك, بعد ذلك تكتب اسم الدالة ومدخلات:Parameters بين قوسين ان أردت استعمالها.كما يمكنكم استعمال أكثر من مدخل في نفس الدالة وتفريقهم بعلامة -,- .سأعطيكم مثالا لدالة دون استعمال مدخلات :
كود PHP:
function SayHello()
{
echo "Hello everyone !
";
}
SayHello();
?> اسماء وحالات الدوال :هنا يجب عليك ان تعرف ان مناداة الدوال التي تقوم بإنشائها ليست حساسة لحالة الاحرف فالدالة function_name() هي نفسها Function_Name() وهي ايضا نفسها الدالة FUNCTION_NAME()
ولكن الاغلب استخداما بين المبرمجين هو ان تكون اسماء الدوال احرف صغيرة , وايضا اسماء الدوال لا يمكن ان تبدأ بأرقام او تكون بإسماء دوال موجوده سابقا في اللغه او قمت بعملها انت
ولا تنسى ان اسماء المتغيرات تختلف , فالمتغير $name يختلف عن المتغير $NAME
مرجعات من الدوال :هناك نوعان من الدوال , نوع يقوم بإرجاع مخرجات , والاخر يقوم بإرجاع بيانات ,لقد تعرفنا على النوع الاول سابقا في الأمثلة أعلاه
, ماذا نعني بإرجاع مخراجات ؟؟؟ يكون ارجاع الدالة مخرجات اذا كان هناك العبارة echo او العباره print او كود HTML
ارجاع بيانات من الدوال :اعني بإرجاع بيانات من الدوال , اي ارجاع قيم , ليست للطباعة بمعنى اصح ونستخدم في هذه الحاله العبارة return , في المثال التالي , على سبيل المثال نريد ان نعرف ماهو العدد الاكبر لنستخدمه في كود اخر , لنرى كيفية عمله الان , اكتب التالي في محرر الاكواد :
كود PHP:
function compare($num1, $num2)
{
if($num1 > $num2)
{
return $num1;
}
else
{
return $num2;
}
}
$number=compare(1,2);
?> ولو اردنا ان نقوم بطباعة العدد الى المتصفح سوف نقوم بالتالي :
كود PHP:
function compare($num1, $num2)
{
if($num1 > $num2)
{
return $num1;
}
else
{
return $num2;
}
}
echo compare(1,2);
?> يمكنك جعل عدد لا نهائي من المعطيات للداله , والامر يعود الى طريقتك واحتياجكطبعا هنا , اذا قمت بإستخدام الداله من غير كتابة مدخل , اي لم تقم بإعطائها قيمه , سوف يكون هناك خطأ , اذا هذه الطريقه يتوجب عليك ان تقوم بتحديد المدخل ايا كان نوعه
لم ننتهي بعد , هناك نقطه اخرى , ماذا لو اردت ان يكون احد المعطيات اختياري ؟ مثالنا في الاعلى يفرض علينا ان نقوم بإدخال عددين , ماذا لو اردنا ان نجعل عدد اجباري والاخر اختياري , كيف يمكن عمل ذلك ؟ عن طريق تعيين قيمه افتراضيه للمعطى في الدالة , اكتب في محرر الاكواد التالي :
كود PHP:
function compare($num1, $num2=3)
{
if($num1 > $num2)
{
return $num1;
}
else
{
return $num2;
}
}
echo compare(1);
?> الى هنا نصل الى نهاية الدرس الخامس من دورتنا أتمنى أن يروقكم ولا تترددوا بطرح أي سؤال اذا كان هناك شيء غير مفهوم
الى اللقاء في الدرس القادم ان شاء الله