Function الدوال
الدالة هي جزء من كود البرنامج يتم تعريفه عن طريق المبرمج ليتم تنفيذ شي معين بواسطتها، حيث تقوم الدالة بأخذ قيم وتسمي ( arguments معطيات ) كمدخلات، ثم تقوم بعمل بعض التعديلات على هذه المدخلات لتقوم بإخراج قيم أخرى... وفي أكثر الأحيان تقوم الدالة بأخذ القيم و وضعها في متغيرات أخري تسمي بالـ ( parameters ) حتى يتم إجراء العمليات عليها داخل الدالة وهذه المتغيرات لا تعمل خارج الدالة أي أنها متغيرات خاصة بالدالة فقط !!!
أما الآن سوف نقوم ببناء دوال خاصة بنا... ومن صنع أيدينا حيث نقوم بإعطائها المعلومات والبيانات وهي التي تقوم بإجراء العمليات عليها ومن ثم إخراج الحلول.
Function الدوال
كما ذكرنا سابقاً فإنه يوجد في لغة الـ " PHP " العديد من الدوال Function والتي تقوم بوظيفة معينة ( محددة ) ومن فوائد الدوال تصغير الكود البرمجي والتخلص من تكرار بعض المهام التي تتكرر باستمرار، وكذلك توجد إمكانية إنشاء دوال تؤدي وظيفة خاصة وسوف نركز في هذا الفصل من الكتاب على هذا النوع من الدوال الخاصة ( كيفية إنشاء دوال) والتي تقوم بتنفيذ شيء معين حيث تأخذ ( متغيرات – معطيات ) ثم تقوم بمعالجة هذه المتغيرات و تخرج قيمة أخرى .
تعريف الدالة:
لكي تقوم بتعريف دالة فإننا نقوم بكتابة الكلمة " function " متبوعة باسم الدالة والبارمترات اللازمة والتي سوف يتم إجراء العمليات عليها بين قوسين ومن ثم تقوم بكتابة الكود اللازم وسط القوسين المعقوفين " { } " .
و الصيغة العامة للدالة هي:
رمز PHP:
Function function_name (parameters)
{
function code}
ولاحظ أن الكود السابق يتكون من عدة أجزاء:
1 ـ Function إن أي دالة يجب أن تبدأ بهذه الكلمة وهي تشير إلى أن الكود اللاحق له عبارة عن الدالة التي نريد تعريفها .
2 ـ function_name أو أسم الدالة التي سوف نقوم بتعريفها، ونستطيع أن نحدد أي اسم باستثنـاء الدوال المعرفة فعلاً، ولكن يفضل أن يكون هذا الاسم يدل على معنى الدالة، حتى يسهل تذكرها عند استدعاءها فيما بعد.
3 ـ الجزء الخاص بعوامل الدالة والذي يحتوي على البارامتر أو المتغيرات .
4 ـ {} كود الدالة بين القوسين المعقوفين، وكل ما يكتب بعدها لن يتم تنفيذه مبـاشرة، بل سيتم ذلك عند استدعاء الدالة .
5 ـ return وذلك لإعلام الدالة بأن وظيفتها قد انتهت بالإضافة إلى ذكر اسم المتغير المذكور في تعريف الدالة سابقاً .
وعند برمجة الدالة نقوم بكتابه اسم الدالة بدلاً من " function_name " ثم نقوم بتعريف المتغيرات " parameters " ، ثم نقوم بكتابه الكود الذي سوف يقوم بالمطلوب بين القوسين بدلاً من " function code ".
ملاحظات على الدوال:
1 ـ أن تكون الدالة غير موجودة مسبقاً، لأنها لو كانت موجودة فعلاً فليس هناك سبب يدعوا لتكرار الجهد، بل يمكنك إستخدام الدوال الجاهزة في دليل الـ php.net .
2 ـ لا يمكن أن يبدأ اسم الدالة بعدد .
3 ـ عدم وضع فاصلة منقوطة بعد نهاية الدالة .
والآن هيا نقوم بكتابة دالة من إنشاءنا والتي تقوم بإجراء عملية الجمع على متغيرين وسوف نقوم بتسمية الدالة باسم " sum " وهو اسم قمنا باختياره وهو يدل على وظيفة وهدف الدالة ويجب أن تعلم أنه يمكنك أن تقوم بتسمية الدالة بأي اسم تريده ولست مجبراً على اختيار اسم معين.
رمز PHP:
<?phpFunction sum($a)
{$a = $a + 100 ;
return $a;
}?>
الشرح :
تقوم في هذه الدالة بإجراء عملية إضافة 100 على المتغير أو القيمة التي يتم تمريرها .
Return
يجب أن نضعها في نهاية كل دالة، نستخدم هذه الكلمة لكي نقوم بإعلام الدالة أن وظيفتها انتهت، وأيضاً نستخدمها إذا كان لدينا أكثر من قيمة ونريد أن نقوم بإخبار الـ " PHP " ما هي القيمة التي سيتم اعتمادها ففي مثالنا هذا أردنا إخبار الـ " PHP " بأن يقوم بأخذ المتغير $a على أنه هو القيمة النهائية، حتى لو لم نضع المتغير فسيتم اعتباره هو الناتج النهائي لأنه لا يوجد متغير آخر تم عليه أي عمليات.
مثال:
رمز PHP:
<?phpFunction sum($a)
{$a = $a + 100 ;
return ;
}?>
لا توجد مشاكل هنا لأنه لا يوجد لدينا إلا قيمة واحدة لن يتم اعتماد قيمة غيرها ولكن على افتراض أنه لدينا أكثر من قيمة كما في المثال التالي:
رمز PHP:
<?phpFunction sum($a,$b)
{$a = $a + 100 ;$b= $b*100;
return $a ;
}?>
هنا يجب تحديد أي المتغيرين سيكون هو القيمة النهائية للدالة.
شرح الدالة:
تقوم الدالة التي صنعناها بأخذ قيمتين ومن ثم فإنها تقوم بزيادة العدد الذي يتم تمريره 100، ولكي نقوم بإخراج نتيجة الدالة فإننا ببساطة نستطيع ذلك بإجراء أحد الأمرين echo أوprint .
مثال:
رمز PHP:
<?phpFunction sum($a)
{$a = $a + 100 ;
return ;
}
echo sum(500);?>
لقد قمنا بتمرير رقم بدلاً من المتغير ويمكننا أيضا تمرير متغير بدلاً من الرقم
مثال:
رمز PHP:
<?phpFunction sum($a)
{$a = $a + 100 ;
return ;
}$f=100;
echo sum($f);?>
لاحظ أننا استخدمنا متغير في الدالة ( مما يثبت كلامنا في الأعلى أن للدالة متغيرات خاصة بها ) وليس معني ذلك أننا لا نستطيع استخدام متغيرات بنفس الاسم المذكور في الدالة فيمكننا مثلاً كتابة نفس اسم المتغير بدون حصول أي مشاكل كالتالي:
رمز PHP:
<?phpFunction sum ($a)
{$a = $a + 100 ;
return ;
}$a=100;
echo sum($a);?>
كما يمكننا أيضا استدعاء دالة بشكل عادي إذا كانت هي تقوم بالطباعة.
مثال:
رمز PHP:
<?phpFunction sum($a)
{$a = $a + 100 ;
print $a;
return ;
}$a=100;sum($a);?>
يقوم الأمر " print " بنفس عمل الدالة " echo " ولا يوجد بينهما أي اختلاف سوى أن الدالة " echo " قديمة وهي الأصل أما الدالة " print " فقد تم إنشاؤها في " php4".
مثال:
رمز PHP:
<?phpprint “ايهاب”;?>
و يمكننا بها إخراج نتيجة دالة
رمز PHP:
<?phpFunction sum($a)
{$a = $a + 100 ;
return ;
}$a=100;
print sum($a);?>
أين يتم وضع الدالة ؟
يمكنك وضع الدالة في أول الكود أو في أخره أي أنه لا فرق بين:
مثال:
رمز PHP:
<?php//لاحظ أننا قمنا بتعريف الدالة أولاً ثم تم استدعاءهاFunction mail($d)
{
print “ admin@admin.com”;
}mail($d) ;?>
مثال:
رمز PHP:
<?php//لاحظ أننا قمنا باستدعاء الدالة أولاً ثم تم تعريفهاmail($d) ;
Function mail($d)
{
print “ admin@admin.com”;
}?>
كما يمكننا أيضاً عدم وضع متغيرات في الدالة كالتالي:
رمز PHP:
Html_header ()
{
Print“<html><head><title>TibaNet</title></head>”;
Return ;
}
هذه الدالة تقوم بكتابة الطور الأول من صفحة " HTML " لاحظ أننا لم نقم بوضع أي متغيرات.
مثال:
رمز PHP:
<?php// تعريف الدالةfunction ehab($a)
{$a=$a*$a*$a*$a;
return($a);
}// طبـاعة ناتج الدالة عند إدخال الرقم 5 فيهاecho ehab(5);?>
الشرح:
هذه الدالة تقوم بحساب عدد مرفوع لأس أربعة بمعنى أن العدد مضروب في نفسه أربع مرات اسم الدالة ehab ، وعند طباعة مخرجات الدالة لرقم ، كتبنا أمر الطباعة قبل اسم الدالة والرقم المراد حساب الأس الرابع له بين قوسين (5) و هكذا إذا وضعنا أي رقم آخر سوف تقوم الدالة بحساب الأس الرابع للرقم مباشر و في مثالنا هذا يتم طبع الرقم 625.
تمرير القيم إلى الدالة:
يمكن القول بأن هناك نوعين من تمرير القيم.
1 ـ تمرير القيمة مباشرة إلى الدالة ( passing by value ).
و ذلك بوضع القيمة مباشرة بدون إدراجها في متغيرات.
مثال:
رمز PHP:
<?phpFunction tiba ($f)
{$f=$f+$f;
return ;
}
echo tiba(100);?>
لاحظ أننا قمنا بإدراج القيمة مباشرة للدالة بدون وضعها في متغيرات.
2 ـ تمرير القيمة عن طريق المرجع ( passing by reference ).
و يتم ذلك بوضع القيمة في متغير أولاً ، ثم وضع هذا المتغير في الدالة لكي يتم إجراء العمليات عليه.
مثال:
رمز PHP:
<?phpFunction tiba ($f)
{$f=$f+$f;
return ;
}$r =1000;
echo tiba($r);?>
مثال:
رمز PHP:
<?phpfunction ehab($a)
{$a=$a*$a*$a*3 ;
return($a) ;
}$z=10 ;
echo ehab ($z) ;?>
الشرح:
في هذا المثال تقوم الدالة بضرب العدد في نفسه ثلاث مرات ثم في الرقم 3 ، و نلاحظ أننا مررنا المتغير z$ إلى الدالة ehab و كتبناها جميعها في سطر طباعة نتيجة الدالة بالأمرecho . و لذلك تقوم الدالة في هذا المثال بضرب الرقم 10 في نفسه ثلاث مرات ثم في 3 يكون الناتج 3000 و من ثم يتم طباعة الناتج ، و بطبيعة الحال كلما غيرنا قيمة المتغير اختلفت نتيجة الدالة.
إعداد قيمة افتراضيه للدالة.
تستطيع أن تجعل الـ " PHP4 " يقوم بإدراج قيمة افتراضية عند عدم تمرير متغيرات إليه.
مثال:
رمز PHP:
<?phpFunction tiba ($f=40)
{$f=$f+$f;
return ;
}
echo tiba();?>
إذا لم يتم إعطاء قيمة للدالة فإنها ستفترض أن القيمة هي 40 مباشرة.
أما إذا تم تمرير قيمة أو متغير فإنه سيتم العمل بالقيمة التي تم تمريرها بدلاً من القيمة الافتراضية.
مثال:
رمز PHP:
<?phpFunction tiba ($f=40)
{$f=$f+$f;
return ;
}
echo tiba(100);?>
مدى المتغيرات ( variable scope ):
هناك متغيرات محلية ( local ) و متغيرات عامة ( global ) ، و نحن نعني بالمتغيرات المحلية التي تكون في داخل الدالة ، ونعني بالعامة التي تكون في كود الـ " PHP " بشكل عام.
مثال:
رمز PHP:
<?php//هذا متغير عام$r= “ehab”;
function tiba($s)
{//هذا متغير محلى$s = “progrramer”;
}
echo $r;tiba($s);
echo $s;?>
مثال:
رمز PHP:
<?php//هذا متغير عام$r= “ehab”;
function tiba($s)
{//هذا متغير محلى$s = “progrramer”;
}
echo $r ;$s=10;
echo $s;?>
في المثال الأول استطعنا طباعة المتغير " $r " و لم نستطع طباعة المتغير " $s " لأنه محلى ( حيث لا يتم تنفيذه إلا داخل الدالة ) ، أما إذا أردنا طباعته فإننا يجب أن نطبع ناتج الدالة لكي نحصل عليه ( أي أننا لا نستطيع طباعته بشكل مباشر ).
مثال:
رمز PHP:
<?php//هذا متغير عام$r = “ehab”;
function tiba($s)
{//هذا متغير محلى$s = “programmer”;
}//استطعنا طباعته بشكل مباشرecho $r ;tiba($s);// يجب استخدام الدالة لكي يتم طباعتهecho tiba($s);?>
لاحظ أننا حتى لو قمنا بعملية طباعة المتغير من نفس الدالة فالناتج يكون مختلف لأن لكل متغير عالمه الخاص به.
لكي نقوم بجعل المتغير الذي بداخل الدالة متغيراً عاماً فيمكننا ذلك بإحدى الطريقتين التاليتين:
الطريقة الأولى:
رمز PHP:
<?phpfunction tiba($y)
{
echo $y. “<br>”;
global $s;$s = "programmer";
return ;
}$f =10;tiba($f);
echo $s;?>
لاحظ أننا عندما استخدمنا " global " في داخل الدالة لكي يتم تعريف أن المتغير متغير عام ، و بعد أن قمنا باستخدام الدالة قامت بطباعة المتغير المراد طباعته ، و من ثم بعد ذلك قامت بتعريف متغير جديد ( $s ) و هذا المتغير متغير عام لأننا وضعنا قبله الكلمة " global " فاستطعنا طباعته بكل سهوله.
الطريقة الثانية:
هي أن نستخدم المصفوفة $GLOBALS التي تستخدم في " PHP " لتعريف المتغيرات العامة أيضاً.
مثال:
رمز PHP:
<?phpfunction tiba($y)
{
echo $y. “<br>”;$GLOBALS[“s”] ;$s = "programmer";
return ;
}$f =10;tiba($f);
echo $s;?>
المتغيرات المستقرة ( static variable ).
المقصود بالمتغيرات المستقرة هي التي تكون قيمتها ثابتة.
مثال:
رمز PHP:
<?phpFunction add($y)
{$y;$y=$y+1 ;
return $y;
}
echo add($y);
echo add($y);
echo add($y);
echo add($y);?>
<?phpFunction add($y)
{
static $y;$y=$y+1 ;
return $y;
}
echo add($y);
echo add($y);
echo add($y);
echo add($y);?>
لاحظ عندما عرفنا المتغير بأنه static فانه يحتفظ بقيمته حتى لو انتهت الدالة.
دوال متداخلة:
يمكننا عمل تعشيش للدوال مثلما نفعل مع بناء القرارات و التكرارات.
مثال:
رمز PHP:
<?phpFunction sum($sa)
{$sa=$sa-1;
function goadd ($r)
{$r = $r+$r;
return $r;
}$sa= goadd ($sa);
return $sa;
}
echo sum (15);?>
في مثالنا هذا لدينا دالتين الدالة الأولى هي ( sum ) و الدالة الثانية هي ( goadd ).
وظيفة الدالة الأولى هي أن تقوم بالإنقاص من العدد الذي يمرر إليها واحد ثم تقوم بتطبيق دالة داخلية فيها هي ( goadd ) تقوم بزيادة العدد على نفسه ، و من ثم قمنا بنداء الدالة الأولى ( لأنها هي الأساس التي يوجد به الدوال الداخلية ) و طباعة قيمتها.
تضمين الملفات ( include files ):
قد يكون لديك في برنامجك متغير متكرر في أكثر من صفحة أو رسالة خطأ معينة أو تريد إدراج نص كبير الحجم في صفحات متعددة.
هنا يمكنك تضمين ملفات في داخل ملفات الـ" PHP " ، هذه الملفات قد تحتوي على نصوص أو كود " HTML " أو كود " PHP ".
و الصيغة العامة التي تستخدمها لتضمين الملفات هي:
رمز PHP:
Include (filename);
مثال:
1 ـ قم بتحرير ملف نصي و اكتب فيه ما تشاء ثم احفظه باسم a.txt .
2 ـ قم بتحرير ملف " PHP " و اكتب فيه الكود التالي ، ثم احفظه باسم b.php.
رمز PHP:
<?phpInclude (“a.txt”);?>
انقلهما إلى مجلد السيرفر.. شغل ملف الـ b.php و انظر النتيجة.
يمكنك أن تقوم بإنشاء ملف PHP و تحتفظ فيه بجميع الـ function المطلوبة لبرنامجك و عند إرادتك لاستخدام أي واحدة منها تقوم فقط باشتمال الملف و من ثم استدعاءها.
داله تلوين الكود
قم بوضع الكود في ملف نصي و سمه بأي اسم و ليكن file.txt ، و بعد ذلك قم باستخدام الدالة Show_source
مثال:
رمز PHP:
<?php
show_source ("file.txt");?>
هذا وصلى الله على نبينا محمد , إن أخطاءنا فمن الشيطان و انتظر من لديه المزيد أو الزيادة والنقص على ما كتبنا .
ايضا تفضل شرح فيديو
https://www.youtube.com/watch?v=t3Q58-srd7c
تحويل كودإخفاء محول الأكواد الإبتساماتإخفاء