المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : [دورة ديزاد باتنة المفتوحة 2014]الدرس مفصل الرايع : الدوال Functions



admin
11-01-2013, بتوقيت غرينيتش 03:44 PM
http://www.dzbatna.com/images/icons/iconrote.gif [ط¯ظˆط±ط© طھط±ط§ظٹط¯ظ†طھ ط§ظ„ظ…ظپطھظˆط*ط© 2014]ط§ظ„ط¯ط±ط³ ط§ظ„ط±ط§ظٹط¹ : ط§ظ„ط¯ظˆط§ظ„ Functions (http://www.dzbatna.com/t1529019/)



السلام عليكم ورحمة الله وبركاته
السادة أعضاء ديزاد باتنة
تحيه طيبه اليكم

نستكمل سويا دروس دورة ديزاد باتنة المفتوحة التى ابتدأناها سويا فى معهدنا الغالى ديزاد باتنة والآن سنقدم الدرس مفصل الثالث بعنوان اتخاذ القرارات وحلقات التكرار وتتمثل محاور الحديث على : مقدمة عن الدوال .
أنواع الدوال .
الدوال المدمجه فى لغة php .
الدوال التى يتم تعريفها من قبل المبرمج .
كيف تقوم بكتابة داله وكيف تقوم باستدعاءها .
المتغيرات (معاملات الازاحه) للدوال والقيم الافتراضيه للمعاملات .
القيم الراجعه من الدوال (مخرجات الدوال).

الشرح طريقة

1- مقدمه عن الدوال :
ببساطه شديده يمكن توصيف الدوال بجهاز المحمول فأنت تعطى جهازك المحمول الطاقه متمثله فى الكهرباء لكى يعمل .
ويمكن توصيفها بالمطهى فانت تعطى المطهى الطعام والطاقه لكى يرجعه لك مطهيا .
كذلك الدوال فأنت تعطيها مجموعه من المتغيرات لتعود اليك بقيمه أخرى بعد اجراء مجموعه من العمليات بداخل الداله .
فاذا تحدثنا عن الدوال فاننا نضع قدميك على اولى الخطوات لكتابة كود code ذو كفاءه عاليه .
تقوم الدوال بتوفير وقت وجهد كبيرين على المبرمج . فمثلا أنت تريد أنت تقوم بعمليه ما فى عدد كبير من الصفحات . فمن المفترض أنك ستكتب كود code برمجى وتضعه فى كل صفحه من تلك الصفحات .



ولكن باستخدام الدوال فانك ستقوم بكتابة الكود code مره واحده فقط ثم تقوم باستدعاء الداله لتنفيذ ما بداخلها من الكود code .
ولنفترض أنك فى الحاله الاولى بدون استخدام الدوال وحدث أنك تريد ان تعدل على الكود code الخاص بالعمليه ستكون عمليه مرهقه جدا للتعديل على كل الصفحات المتواجد بها الكود code http://www.dzbatna.com/images/smilies/crazy.gif
ولكن باستخدام الدوال فانك ستعدل الكود code مره واحده فقط .

2- أنواع الدوال :
فى تحدثنا عن الدوال من حيث التصنيف الرئيسى تنقسم الدوال الى :

دوال مدمجه فى لغة php : وهى دوال لا يحتاج المبرمج الى تعريفها أو كتابة الاكواد الخاصه بها ومن انواعها دوال التعامل مع النصوص والارقام والملفات .... الخ .
دوال تعرف من قبل المبرمج (المستخدم ): وهى دوال يقوم المبرمج بكتابتها لتنفيذ مهام معينه لا يمكن للدوال المدمجه تنفيذها ويتم استدعاؤها تقريبن بنفس الطريقه التى يتم بها استدعاء الدوال المدمجه.

3- الدوال المدمجه فى PHP :
كما تحدثنا فى السطور السابقه عن ذلك النوع من الدوال ولها أنواع كثيره جدا منها :

Strings Functions
XML Functions
URL Functions
Variable Functions
MYSQL Functions
Mail Functions
Math Functions
Images Functions
FTP Functions
Date and Time Functions
Arrays Functions
..... الخ

يمكن الاطلاع على مرجع للدول المدمجه على الرابط التالى فيوجد به كثير من المعلومات الهامه عنها وتعليقات تزيد من خبراتك:
http://www.php.net/manual/en/funcref.php

وسنسرد طوال سير الدوره الدوال المدمجه التى يتم استخدامها .

4- الدوال التى يتم تعريفها من قبل المبرمج :
وهى دوال يقوم المبرمج بكتابتها لتنفيذ مهام معينه لا يمكن للدوال المدمجه تنفيذها ويتم استدعاؤها تقريبن بنفس الطريقه التى يتم بها استدعاء الدوال المدمجه وهى أولى الخطوات التى ستخطوها لكى تبدأ بكتابة كود code ذو كفاءة عاليه. وتلك الدوال توفر على المستخدم مئات السطور ومئات العمليات من القص واللصق .
فكما ذكرنا سابقا المثال الذى قال :

فمثلا أنت تريد أنت تقوم بعمليه ما فى عدد كبير من الصفحات . فمن المفترض أنك ستكتب كود code برمجى وتضعه فى كل صفحه من تلك الصفحات .
ولكن باستخدام الدوال فانك ستقوم بكتابة الكود code مره واحده فقط ثم تقوم باستدعاء الداله لتنفيذ ما بداخلها من الكود code .

تفيد الدوال المعرفه من قبل المبرمج فيما يلى :


توفير وقت وجهد كبيرين .
يمكن استدعاء الداله بمجرد كتابة سطر واحد وتنفيذها مئات المرات وبالتالى توفير مئات السطور البرمجيه بدلا من اعادة كتابة نفس الكود code عند الحاجه لتنفيذه .
تسهل عليك عملية اصلاح الكود code أو تعديله فى حالة حاجتك الى ذلك .
تجعل الكود code منظم ومرتب وسهل التطوير والفهم .

فمثلا اذا اردنا أن نتأكد من اسم المستخدم وكلمة المرور فى البرنامج فسنتحتاج لكتابة عشرات الأكواد فى كل صفحه نريد التأكد منها من تلك القيم ولكننا يمكننا تكوين داله يرسل اليها اسم المستخدم وكلمة المرور لكى تتأكد منهما وتعيد لنا ما يفيد صحة أو خطأ تلك البيانات.

5- كيف تقوم بكتابة داله وكيف تقوم باستدعاءها :
لكى نقوم بكتابة داله معينه يجب أن نتبع عدة قواعد بسيطه وهى :


نبدأ بكلمة function
يتبع بعدها اسم الداله وهو اسم تختاره أنت .
ويتم وضع بين القوسين المتغيرات (المعاملات) التى يتم ارسالها للداله .
نقوم بكتابة الأوامر والعمليات الخاصه بالداله والتى ستنفذها .
نكتب كلمة ruturn وبعدها القيمه التى تعيدها الداله .

قد يكون ما تم ذكره سابقا لا يتضح اليك واليك الصيغه الخاصه بكتابة داله معرفه

رمز PHP:

<code style="white-space:nowrap"> <code> function function_name ( Variable1){
نكتب هنا الأوامر والعمليات
return variable2;
}
</code> </code>

فكما يظهر فى السابق سنكتب مكان function_name اسم الداله .
وسنكتب مكان Variable1 المتغيرات التى سيتم ارسالها للداله لكى تقوم بمهامها عليها .
وسنكتب مكان نكتب هنا الأوامر والعمليات الأوامر التى ستقوم الداله بتنفيذها
وسنكتب مكان variable2 القيمه التى ترجعها الداله بعد اجراء العمليات عليها .

واليك بمثال : داله تقوم بحساب مجموع عددين يرسل اليها :
رمز PHP:

<code style="white-space:nowrap"> <code> function plus($digit1,$digit2){
$total=$digit1+$digit2;
return $total;
}
</code> </code>

ففى السطر الأول قمنا باخباره اننا سنكتب داله بالكلمة function
وقمنا بتسميتها plus
وبين القوسين المتغيرات التى سيستخدمها فى حساباته وهم $digit1 والمتغير $digit2
وفى السطر التالى قام بعمل العمليات الحسابيه على المتغيرين وخزن ما نتج به فى متغير يسمى $total
وبعد ذلك وضح أن القيمه التى ستعود هى قيمة المتغير $total لسبقه بكلمة return

والآن يأتى السؤال الذى يطرح نفسه :
الآن قمت بكتابة داله فكيف أقوم باستدعاؤها وتنفيذها فى برامجى ؟؟
نقوم بالاستدعاء بكتابة اسم الداله ثم ترسل لها قيم المتغيرات التى ستقوم بالعمليات عليها فقط
مثال لاستدعاء الداله السابقه :
رمز PHP:

<code style="white-space:nowrap"> <code> echo plus(1,2);
</code> </code>

قمنا بكتابة اسم الداله وهو plus
وأرسلنا الى الداله المتغيران واحد واثنان كمتغيرات للداله ولاحظ أننا أرسلنا متغيران لأن الداله الأصليه يجب أن يرسل اليها متغيران فى الأساس .
الى حد هنا ستقوم الداله الأصليه بعمل العمليات الحسابيه على المتغيران وترجع الناتج
فقمنا باستخدام echo لكى تقوم بطباعة ما نتج من تلك العمليه .

يفضل أن تقوم بكتابة دوال بيدك وتستدعيها بمختلف المهام http://www.dzbatna.com/images/smilies/icon30.gif

6-المتغيرات (معاملات الازاحه) للدوال والقيم الافتراضيه للمعاملات:
تحدثنا سابقا بالمثال السابق عن المتغيرات (معاملات الازاحه)
ولكن ما هي القيم الافتراضيه لها ؟؟؟
نفترض أنك قمت بكتابة داله مثل المتواجده بالأعلى لها معاملات ازاحه وعند استدعاءها قمت بارسال اليها متغير واحد فقط بدلا من ارسال المتغيران فسيظهر لك رسالة خطأ مشابهه لتلك :

Warning: Missing argument 2 for plus(), called in C:\AppServ\www\123.php on line 7 and defined in C:\AppServ\www\123.php on line 2
1

ولكى تجعل دالتك تعمل فى أى حاله من الحالات سواء ارسلت لها قيمه أم لم ترسل فتريد أن تحدد قيمه افتراضيه للمتغير تريد الداله أن تعمل فى حالة ارسال قيمته أو لم ترسل قيمته فهذا هو ما يسمى القيم الافتراضيه لمعاملات الدوال وهى أن تحدد قيمة افتراضيه للمتغيرات (معاملات الازاحه) لكى يجعلها كقيمه للمتغير فى حال لم ترسل اليها قيمته .
ولكى نفهم الموضوع تماما اليك تطبيق القيم الافتراضيه على المثال السابق .
رمز PHP:

<code style="white-space:nowrap"> <code> function plus($digit1=0,$digit2=0){
$total=$digit1+$digit2;
return $total;
}
</code> </code>

فى هذا المثال قمنا بتحديد القيم الافتراضيه بصفر وبذلك اذا قمت بارسال قيمه للمتغير سيعتبرها قيمته أما اذا لم ترسل قيمه له فسيعتبر قيمته بالعدد صفر مباشرة .

وعن طريقة الاستدعاء فيمكنك أن تستدعى بأى طريقة من الطرق التاليه :
رمز PHP:

<code style="white-space:nowrap"> <code> echo plus(1);
echo plus(1,2);
</code> </code>

ففى الطريقة الأولى لم نرسل اليه قيمه للمتغير الثانى ولهذا سيقوم باعتبارها بقيمة صفر تلقائيا .

7- القيم الراجعه من الدوال (مخرجات الدوال):
يمكن نظريا تقسيم القيم الراجعه من الدوال الى قسمين :
القسم الأول : باستخدام العباره return
وهو ما اشرنا اليه سابقا

القسم الثانى : باستخدام العباره echo أو print
وعادة تستخدم هذا اذا كان المخرج هو كود code html

الى هنا ينتهى بنا المطاف للدرس مفصل الرابع والى لقاء قريب بالدرس مفصل الخامس باذن الله

دروس سابقه :


[دورة ديزاد باتنة المفتوحة 2014] الدرس مفصل الاول : مقدمة ومتطلبات (http://dzbatna.net/vb/showthread.php?t=1507560) بتاريخ : السبت 20-3-2014

[دورة ديزاد باتنة المفتوحة 2014] مرجع رقم 1 (برامج السيرفر SERVERات والتحرير) (http://dzbatna.net/vb/showthread.php?t=1509918) بتاريخ : الاثنين 22-3-2014


[دورة ديزاد باتنة المفتوحة 2014]الدرس مفصل الثانى:مفاهيم والمتغيرات والثوابت وكتابة أول برنامج (http://dzbatna.net/vb/showthread.php?t=1510991) بتاريخ الثلاثاء 23-3-2014

[دورة ديزاد باتنة المفتوحة 2014] تطبيق رقم 1 (عمليات رياضية) (http://dzbatna.net/vb/showthread.php?t=1513013) بتاريخ الخميس 25-3-2014

[دورة ديزاد باتنة المفتوحة 2014]الدرس مفصل الثالث : اتخاذ القرارات وحلقات التكرار (http://dzbatna.net/vb/showthread.php?t=1515009) بتاريخ 27 -3-2014

[دورة ديزاد باتنة المفتوحة 2014] درس مفصل تطبيقى رقم 2 (الحلقات التكرارية واتخاذ القرار) (http://dzbatna.net/vb/showthread.php?t=1522105) بتاريخ 3/4/2014



الدرس مفصل بصيغة PDF:


http://dzbatna.net/vb/attachment.php...8&d=1270931627 (http://dzbatna.net/vb/attachment.php?attachmentid=474648&d=1270931627)
http://dzbatna.net/vb/attachment.php...6&d=1270988616 (http://dzbatna.net/vb/attachment.php?attachmentid=474796&d=1270988616)


شكر الى MR.Electronic (http://dzbatna.net/vb/member.php?u=65520) , Aymen123 (http://dzbatna.net/vb/member.php?u=73183) ,

أرجو أن أكون قد قدمت لكم الدرس مفصل بشكل واضح ومفهوم
واذا كان هناك شئ يشوبه الغموض لا تتردد فى وضع استفسارك

تقبلوا تحياتى
Mr.Ajax








ألعاب الأندرويد مجانا و حصريا (http://www.apotox.info/forum)


الملفات المرفقة
http://www.traidnt.net/vb/images/attach/zip.gif [دورة ترايدنت المفتوحة 2010]الدرس الرابع الدوال Functions.zip (http://www.traidnt.net/vb/attachments/474648d1270931627-[دورة-ترايدنت-المفتوحة-2010]الدرس-الرابع-الدوال-functions.zip) (303.7 كيلوبايت, عدد مرات المشاهدة 1136 مرة)


https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى