Open top menu
الاثنين، 4 مارس 2013


اليوم ان شاء الله سوف نتتطرق الى الحلقات والتي احب ان اطلق عليها دوال التكرار  بالفرنسية تسمى Boucles وبالانجليزية Loops وكما يكمن ان نفهما من اسمها فهي دوال خاصة ب php تقوم بتكرار اومر .
في php هناك دالتين والاتاني سنتعرف عليهما اﻻن :






1  - دالة while :
اﻻولى وهي اﻻبسط هي while وتقوم بتكرار اﻻمر الى ان تصل الى شرط التوقف مثال بسيط :
<?php
$i = 1;
while ($i <= 10) {
print $i++;
}
?>

في هدا العرض البسيط قمنا باعطاء القيمة1 للمتغير  i ويقوم php باستعمال الدالة while بتكرار طباعة المتغير  i وسيضيف القيمة1 كل مرة وهده العملية تقوم بها الشيفرة ++i$ والتي يمكن تعويضها بالشيفرة
$i = $i + 1 ;
والدالة سوف تتوقف حالما يصل المتغير i الى القيمة المحددة سلفا وهي 10 ونتيجة هدا البرنامج الصغير هي : 12345678910
هدا البرنامج الصغير يمكن كتابته بطريقة اخرى :


<?php
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
?>

تجدر اﻻشارة ان هناك دالة شبيهة ب while وهي do..while والفرق بين الدالتين هو ان الشرط ﻻ يتم التحقق من صحته اﻻ في النهاية و العكس صحيح بالنسبة ل while كالعادة مثل لتوضيح :

<?php
$i = 1;
do {
print $i++;
} while ($i<=10);
?>

ونتيجة هدا البرنامج  هي كدالك : 12345678910

2 - دالة for :

ثانيا الدالة العملاق for وهي دالة معقدة قليلا بالمقارنة ب while الكتابة العامة لهده الدالة هي :

for (expr1; expr2; expr3)
{
code ...
}

تكفي الملاحظة لنتمكن من تميز ان هنا 3 مداخل للدالة يجب تحديدها لتعمل الدالة وهي expr1 و التي تمثل القيمة البدئية لبداية العد وexpr2 وهي القيمة لنهاية العد اي القيمة ﻻ يجب ان تتخطاها الدالة واخيرا expr3 وهي العامل والتي تتحكم فيما ادا كان العد تزايدا او تناقصيا . مثال لما قلت :
<?php
for($i = 1;$i<10;$i++){
echo $i."-";
}
?>
نتيجة المثال 1-2-3-4-5-6-7-8-9-10  ﻻن العامل تصاعدي ++
 مثال لعد تنازلي:
<?php
for($i = 10;$i>=1;$i--){
echo $i."-";
}
?>

نتيجة المثال 10-9-8-7-6-5-4-3-2-1  ﻻن العامل تنازلي - -
تجدر اﻻشارة الى ان الحلقة for وكدالك while قابلتين للاستعمال معا الواحدة ضمن اﻻخرى والعكس صحيح,باﻻضافة الى دالك فانهما تتيحان استعمال كلمتين مهمتين هما Break و continue :
break تستعمل لتوقيف الدالة عند قيمة يحددها البرنامج في حالة كانت القيمة النهائية يحددها المستخدم سأشرح طبعا لنفترض أن المستخدم له الحق في تحديد قيمة النهائية أي عدد المرات التي يتم تكرار اﻻمر ولنفترض أن لدينا 10 مستخدامين متصلين وكل واحد منهم ادخل القيمة 1000 فالسيرفر الدي يشغل السكريبت سيتوقف ﻻ محالة
تنبيــــــه مهم : يجب دائما التأكد من ان الدالة   for  أو while  تحمل قيمة بداية ونهاية لأن العكس قد يؤدي الى توقف السيرفر
 ولحل هده المعضلة هناك break تقوم بتوقيف البرنامج عند قيمة محدد ولو قام المستخدم في تجاوزها فلن يستطيع مثال تطبيقي :
<?php
$i=1;
while($i<$nub){
echo $i."-";
$i++;
if($i>10){
break;
}
}
?>

في هدا المثال المتغير nub يتحكم في ادخاله المستخدم مما يشكل خطرا كا سبقت اﻻشارة وهنا ياتي دور break التي توقف البرنامج بعد التاكد بواسطة جملة شرطية من  وصوله القيمة 10 .
أما بالنسبة ل continue فهي تأمر بتجاوز او نخطي قيمة معينة ادا وصلت اليها الحلقة كالعادة مثال توضيحي :

<?php
for($i=1;$i<10;$i++){
if($i==7){
continue;
}
echo $i."-";
}
?>
وهنا سنلاحظ طباعة اﻻعداد من 1 الى 10 معدا الرقم 7 الدي سيتم تجاوزه بعد التحقق  من قيمته بواسطة دالة شرطية,

في رعاية الله
التصنيف :
Amine Blog
Abderrahim S.E

مبرمج و مدون مغربي في مجال التقنيات الحديثة وكل ما يخص الحماية و الهكر الأخلاقي

0 تعليقات

للتواصـــــــل