:: vBspiders Professional Network ::

:: vBspiders Professional Network :: (http://www.vbspiders.com/vb/index.php)
-   برمجة الويب (http://www.vbspiders.com/vb/f424.html)
-   -   الدرس الحادي عشر(شرح عبارات اللغة) (http://www.vbspiders.com/vb/t15561.html)

SoLiTair4Ever 07-19-2009 11:05 PM

الدرس الحادي عشر(شرح عبارات اللغة)
 
بسم الله الرحمن الرحيم والصلاة والسلام على اشرف الانبياء والمرسلين ، سيتم التطرق في هذا الدرس بمشيئة الله الى ما يلي :



- عبـاراة الـ if .

- عبـاراة الـ else .

- عبـاراة الـ elseif .

- عبـاراة الـ switch .

- حلقة التكرار while .

- حلقة التكرار for .

- حلقة التكرار do while .



- عبـاراة الـ if :

استخدام الـ if في كتابة السكربات شي أساسي ، وكما في لغات البرمجة الأخرى فإن الـ PHP تتبع نفس الاسلوب في كتابة الـ if ، فيمكن تحديد شرط معين مقترن بالـ if وبالتالي اذا كان الشرط صحيحاً ( true ) فسيتم تنفيذ الاسطر المحددة ، وبتفصيل أكثر يجب وضع الشرط بين قوسين ( ) ، ووضع الاسطر المطلوب تنفيذها بين العلامـات { } ، مع ملاحظة أنه يمكن التخلي عن العلامات { } في حال وجود سطر واحد فقط .



فلنفترض وجود نموذج بريدي ( Mail Fourm ) ، يحتوي على الإسم والبريد والرسالة ، ونرغب في معرفة ما اذا كان المرسل قد ملأ جميع الحقول وبالتالي إرسـال الرسـالة ، او انه لم بفعل ذلك وبالتالي عرض رسـالة ( فضلاً قم بتعبئة البيـانات كاملة ) ، لعمل ذلك نحتاج معرفة أسمـاء المتغيرات في النموذج ، ولذلك فلنفترض أن المتغيرات كالتالي :

( الإسم name$ ) ، ( البريد email$ ) ، ( الرسـالة later$ ) ، ولعمل الشرط الأول ( اذا كان الإسم لم يُدخل فلن يتم ارسـال الرسـالة ) :

<?
if ( $name == "" )
echo "فضلاً قم بتعبئة البيـانات كاملة ";
?>

والمعنى أنه إذا كان المتغير name$ لا يحتوي على أي قيمة ( أي فراغ ) فسيتم تنفيذ السطر التالي وطبـاعة الجملة ، مع ملاحظة أن المطلوب تنفيذه هم سطر واحد فقط ولذلك لم نستخدم { } ، بل في حالة وجود أكثر من سطر يجب استخدامها كالتالي :

<?
if ( $name == "" ) {
echo "فضلاً قم بتعبئة البيـانات كاملة<br> ";
echo "لم تقم بإدخـال الإسم ";
}
?>



- عبـاراة الـ else :

هذه العبـارة تتيح امكانية وجود اجراء ثاني لعدم تحقق الشرط ، ففي مثالنا السابق كان الاجراء طباعة الجملة اذا تحقق الشرط ، ولكن في حالة عدم تحقق الشرط فلن يكون هناك اجراء لتنفيذه ، بل ان الاجراء سيتم تنفيذه اذا تحقق الشرط ومن ثم سيتم اكمال بقية الاسطر ، وفي حالة مثل هذه الحالة يتم استخدام الـ else لوضع اجراء آخر في حالة عدم تحقق الشرط ، وبالمثال يتضح المقال :

<?
if ( $name == "" ) {
echo "فضلاً قم بتعبئة البيـانات كاملة";
}
else
{
echo "تم ارسـال الرسـالة ، شكرا لك";
}
?>

في هذا المثال سيتم طباعة الجملة (فضلاً قم بتعبئة البيـانات كاملة ) اذا تحقق الشرط أن المتغير name$ لا يحتوي على أي قيمة ، وسيتم طباعة الجملة (تم ارسـال الرسـالة ، شكرا لك ) في حالة عدم تحقق الشرط ، أي في حالة وجود قيمة في المتغير name$ ، مع ملاحظة أن هذا المثال يحتوي على شرطين وليس شرط واحد ، فالظاهر هو شرط واحد ( "" == name$ ) ولكن العبـارة else تعتبر شرطاً بحد ذاتها ولو لم يكن هذا الشرط مكتوباً ، وكما هو واضح فمعنى هذا الشرط هو ( إذا كان غير ذلك ) فقم بطباعة الجملة .



يمكن أن يكون الشرح غير واضح تماماً ، ولكن أهمية فهم الطريقة ستتضح في الأسطر القليلة القادمة .



- عبـاراة الـ elseif :

في العبارة السابقة ذكرنا أنه يوجد شرطين واجرائين ، أحد هذين الشرطين غير مكتوب بل هو مفهوم من ادراج العبـارة else ، وفي حالات كثيرة لا يكفينا مجرد شرطين واجرائين لاتمام بعض السكربات المعقدة ، فلذلك يمكن نستخدم العبـارة elseif مع الـ if لعمل مثل هذه السكربات ، فلو افترضنا أن لدينا عداد لزوار الموقع ونريد اظاهر العداد بحيث يتم قراءته بشكل جيد ، اي بمعني اخر اذا كان عدد الزوار ( 1 ) فسيتم طباعة الجملة ( عدد الزوار : زائر واحد فقط ) واذا كان ( 2 ) فسيتم طباعة الجملة ( عدد الزوار : زائرين ) ... وقس على ذلك ، فعندما يكون عدد الزوار ( 1 ) فسيتم عرض الجملة الأولى فقط وعندما يكون عدد الزوار ( 2 ) فسيتم عرض الجملة الثانية فقط ، وهكذا لبقية الشروط .



بافتراض أن المتغير ( counter$ ) هو عداد الزوار ، فالمثال التالي يبين ما تم شرحه سابقاً :

<?
if ( $counter == 1 ) {
echo " عدد الزوار : زائر واحد فقط ";
}
elseif ( $counter == 2 ) {
echo " عدد الزوار : زائرين ";
}
elseif ( $counter >= 3 && $counter <= 10 ) {
echo "عدد الزوار : $counter زوار";
}
else {
echo "عدد الزوار : $counter زائر";
}
?>

كما هو واضح في المثـال السابق سيتم ما يلي :



الشرط : العداد يساوي 1

الإجراء : طبـاعة ( عدد الزوار : زائر واحد فقط )

الشرط : العداد يساوي 2

الإجراء : طبـاعة ( عدد الزوار : زائرين )

الشرط : العداد أكبر أو يساوي 3 و اصغر أو يسـاوي 10

الإجراء : طبـاعة ( عدد الزوار : ( العداد ) زوار )

الشرط : العداد لا يحقق أي من الشروط

الإجراء : طبـاعة ( عدد الزوار : ( العداد ) زائر )



ملاحظة بسيطة فقط ، وهي على العلامة && التي تعني ( و ) ، وهي من علامات الجمع بين جملتين ، فيجب أن تكون الجملتين صحيحتين لتحقق الشرط .



- عبـاراة الـ switch :

هذه العبـارة قريبة جداً من العبـارة if ، ولكن يمكن استخدام اكثر من شرطرين باسلوب أخر ، غير انه يجب اسناد قيمة معينة للـ case وهي هنا بمثابة الشرط ، لكي يتم تنفيذ الاجراء المحدد لذلك الشرط أو الـ case ، وفي النهاية الأمر يعود الى المصمم وايهما يفضل ، وكما في المثال السابق يمكن كتابة مثال بالـ switch بنفس الطريقة ، والمشكلة الوحيدة هي كما قلنا أنه يجب اسناد قيمة معينة لكل case وبالتالي فإن الشرط الثالث من المثال السابق يجب تفريقه لكل قيمة من ( 3 الى 10 ) ، وهذه العميلة مجهدة لانه يجب كتابة سطر لكل قيمة كما يلي :



القيمة : 3

الـ case : 3

الاجراء : طبـاعة ( عدد الزوار : ( العداد ) زوار )

القيمة : 4

الـ case : 4

الاجراء : طبـاعة ( عدد الزوار : ( العداد ) زوار )

القيمة : 5

الـ case : 5

الاجراء : طبـاعة ( عدد الزوار : ( العداد ) زوار )

......... الخ ...



وفي المثال التالي ساتغاضى عن الشرط الثالث بكامله ، واذكر بقية الشروط والحالات لمجرد فهم طريقة عمل هذه العبـارة :

<?
switch ($counter)
{
case "1";
echo " عدد الزوار : زائر واحد فقط ";
break;
case "2";
echo " عدد الزوار : زائرين ";
break;
default;
echo "عدد الزوار : $counter زائر";
break;
}
?>

استخدمنا في هذه المثال بعض الجمل وتعني ما يلي :

Switch وتكتب في البداية مع ادراج اسم المتغير الذي سيتم عمل الشروط عليه .

Case أي في حالة ( .... ) ويكتب بجانبها الشرط .

Break وتعني ايقاف العملية والخروج من الشرط بعد تنفيذ أحد الإجراءات .

Defaukt وهي تقابل العبـارة else أي بمعنى أنها لأي حالة لم يتم ذكرها في الشروط .



- حلقة التكرار while :

وهي ابسط حلقات التكرار على الأطلاق ، بحيث تاخذ شرط واحد فقط وتبني على تنفيذ ما بين علامات الشروط { } ، والفرق الوحيد بينها وبين الـ if هو انها ستقوم بتنفيذ الاجراءات طالما كان الشرط صحيحاً ، وهذا يعني احتمال تنفيذ الإجراء أكثر من مرة ، وهذ الدالة مفيدة في ادراج الحقول من الجدوال وغيرها من الاستخدامات ، بحيث لو افترضنا وجود جدول معين في قاعد بيانات ونريد ادراجه في صفحة PHP ، فسيكون من اهم خيارات الاستخدام هذه الدالة ، وباذن الله سيتم التطرق لقواعد البيانات في الدروس القادمة ، وفي الوقت الحالي ساذكر مثال بسيط على هذه الدالة لفهم طريقة استخدامها :

<?
$total = 10;
while ( $total <= 50 )
{
echo "العدد أقل من 50<br>";
$total +=10;
}
?>

كير بسيط يمكن معرفة أن الجملة ( العدد أقل من 50 ) سيتم طباعتها 5 مرات ، لان حلقة التكرار while قامت بتنفيذ الاجراء طالما أن الشرط صحيح ، وفي المرة الأولى كان المتغير ( total$ ) يساوي ( 10 ) والشرط صحيح لان الـ ( total$ ) فعلاً اصغر أو يساوي الـ ( 50 ) ، فتم تنفيذ ما بين علامات الشرط ، ومن ذلك زيادة متغير المجموع ( total$ ) بقيمة ( 10 ) ومن ثم الرجوع والمقارنة من جديد ، وفي هذه الحالة صار المتغير ( total$ ) يساوي ( 20 ) وأيضـاً الشرط صحيح وبالتالي الدخول مرة أخرى وتنفيذ الأجراء .... وهكذا حتى يتم الوصول الى أن قيمة الـ ( total$ ) يساوي ( 50 ) وبالتالي الشرط صحيح ، ومن ثم تصبح قيمة الـ ( total$ ) تساوي ( 60 ) وفي هذه الحالة يتم ايقاف تنفيذ الاجراءات لأن الشرط غير صحيح .



- حلقة التكرار for :

يوجد طريقة أسهل للتعامل مع المثال السابق ، فاستخدام حلقة التكرار while كانت القيمة الابتدائية للمتغير ( total$ ) في سطر ، والشرط في سطر والزيـادة على المتغير في سطر أخر ، وبالتالي زيارة في عدد الأسطر عن ما يمكن استخدامه مع حلقة التكرار for ، فالمثـال التالي يبين طريقة أخرى لاستخدام مثـال الـ while بطريقة أسهل :

<?
for ( $total = 10; $total <=50; $total +=10 )
{
echo "العدد أقل من 50<br>";
}
?>

وللتوضيح فان تركيب الـ for هو على الشكل التالي :

for ( القيمة الأفتراضية; الشـرط; مقدار الزيـادة; )

{

الإجراء المطلوب تنفيذه

}



- حلقة التكرار do while :

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

<?
$total = 10;
do
{
echo "العدد أقل من 50<br>";
$total +=10;
}
while ( $total <= 50 );
?>

وفي نهاية الدرس اتمنى الفائدة للجميع


منقوووول للافادة


الساعة الآن 09:39 PM


[ vBspiders.Com Network ]


SEO by vBSEO 3.6.0