-كيفية انشاء الدوال والتحكم بها (Function)
القسم php - الزيارات 3965 - التاريخ 20/3/2008
السلام عليكم الداله هي ما يعرف بـ Function وطريقة استخدامها سهله ولها الكثير من الاستخدامات وسنطرح بعض الامثله حتى نتعرف على طريقة استخدام الدوال بالشكل الصحيح .
مثال بسيط :
كود
<?
Function tlbat()
{
echo 'أهلا وسهلا بكم بموقع طلبات';
}
?>
والآن انت صنعت داله خاصه بك ولكن كيف نعرضها !!
ببساطه طريقة عرض الدوال هي كتابة اسم الداله متبوعه بالقوسين ثم علامة الاغلاق كالمثال التالي :
والآن ستلاحظ انه تم طباعة ما بداخل الداله وهو
أهلا وسهلا بكم بموقع طلبات ================
أكيد راح تقول هذي بسيطه وسهالات ولكن هل تعلم ان الداله لا تتعرف على المتغيرات التي خارج اقواس الداله نفسها
فعلا ان الداله لا تتعرف على المتغيرات التي خارج الاقواس المعكوفه إلا ان تقوم بتعريف متغير وتضمينه بالداله ... !!! إليك الطريقه وهي بسيطه ايضا :
كود
$name = 'ابوليالي';
Function myname($name)
{
echo 'السلام عليكم يا $name';
}
لاحظ السطر الاول وهو المتغير $name
ثم السطر الثاني وهو بداية الداله واسمها ثم بين الاقواس ستجد نفس المتغير $name وضعناه هنا حتى تتعرف عليه الداله وتعتبره داخلا بعمل الداله نفسها .
ثم قمنا بطباعة عباره من ضمنها المتغير $name . والآن طريقة العرض وهي كالتالي :
هل لاحظ الفرق بين المثال الأول والمثال الثاني !!
في هذا المثال قمنا بعرض الداله ثم ادرجنا المتغير بين الاقواس حتى يتم عرضه واذا لايوجد متغير بين الاقواس سيظهر لك خطأ . ============ وهذه بعض الشروحات من مواقع مختلفه لطريقة كتابة الدوال اكثر احترافيه اعادة قيمة من الدالة
لو افترضنا ان لدينا دالة باسم test ووضيفتها جمع رقمين وتخزينها في متغير $c
كود
<?
function test($a,$b)
{
$c = $a+$b;
}
?>
اذا استدعينا الدالة بهذا الشكل
الشيء المتوقع من هذه الدالة انها تعيد الرقم 5 كناتج للجمع بين 2 و 3 ولكن في حقيقة الأمر فانها لا تعيد شيئا
وحتى تعيد الدالة قيمة يجب كتابة العبارة return ثم يتبعة المتغير المخزنه فيه القيمة العائدة من الدالة
والشكل الصحيح للدالة
كود
<?
function test($a,$b)
{
$c = $a+$b;
return $c;
}
?>
والان جرب الدالة ستجدها تعيد الرقم 5 ========= المدى المتغيرات داخل الدالة تسمى متغيرات محلية بمعني ان المتغير معرف فقط داخل الدالة لكن لا يمكن استخدامه خارجها وعند استخدامهفلن يعمل شيء
مثال
لدينا الدالة fun تحوي متغير $var وقمنا بتخزين جمله ما فيه
عند استدعاء الدالة سوف تطبع هذه الجمله لكن عند طباعة المتغير $var فانه لن يطبع اي شي
والسبب كما قلنا انه متغير محلي
وهذا المثال جربه بنفسك
كود
<?
function fun()
{
$var = 'شبكة البدر';
return $var;
} echo fun();
echo'<br>';
echo $var;
?>
ولجعل المتغير عمومي بمعنى انه يمكن استخدامه خارج الدالة نضيف الكلمة global قبل المتغير
وبالتالي يصبح الكود السابق
كود
<?
function fun()
{
global $var;
$var = 'شبكة البدر';
return $var;
} echo fun();
echo'<br>';
echo $var;
?>
الان قم بتجربة الكود ستلاحظ انه قام بطباعة قيمة المتغير $var بالرغم انه موجود داخل الدالة
ملاحظة
نستطيع ان نلغي صفة العمومية من المتغير باستخدام unset
=========== العودة من الدالات
احيانا قد نرغب بالعودة دون تكملة الدالة بناءا على شرط ما ولذلك فاننا نستخدم الكلمة return
انظر معي لهذا المثال
في هذا المثال انشأنا دالة باسم fun ومررنا لها متغيرا $var وجعلنا هناك شرطا وهو اذا كان هذا المتغير يساوي 5 ترجع الدالة قيمة صحيحة اما غير ذلك فان الدالة ترجع قيمة خاطئة
كود
<?
function fun($var)
{
if($var == 5)
{
return true;
}else
{
return false;
}
?>
عند استدعاء نمرر رقم بناء على شرط
كود
<?
if(fun(10))
{
echo 'هذا الرقم هو خمسه';
}
else{
echo'هذا الرقم لا يساوي خمسة';
}
?>
راح تطبع الدالة :'هذا الرقم لا يساوي خمسة '
لان الرقم الممرر لها هو 10 =============== امثلة لإنشاء الدالات الدالة الأولى وضيفتها انشاء جدول وتاخذ بارمترين الأول عدد الصفوف والاخر عدد الأعمدة
كود
<?
function table ($rows,$col)
{
echo'<table border='1' cellpadding='0' cellspacing='0' width='100%'>';
for($i=1;$i<=$rows;$i++)
{
echo'<tr>';
for($m=1;$m<=$col;$m++)
{
echo'<td width>????</td>';
}
echo'</tr>';
}
echo'</table>';
}
?>
بامكانك تمرر لها العدد الذي تريده من الصفوف والاعمدة
======== الدالة الثانية تتحكم في لون وحجم الخط
وتحتاج الى ثلاث بارامترات الأول لون الخط والثاني حجمه اما الثالث فهو النص
كود
<?
function font($color,$size,$text)
{
echo'<font color='$color' size='$size'>$text</font>';
}
?>
وهذا مثال عليها
كود
<?
$text='مرحبا بكم معنا في شبكة البدر';
font(brown,8,$text);
?>
وهذه داله تقوم الداله بالتحويل الى الرابط المحدد
كود
<?
function goto($url)
{
echo'<meta htp-equiv='Refresh' content='1; Url=$url'>';
}
?>
مشاركة الموضوع