اليوم ان شاء الله سوف نتتطرق الى الحلقات والتي احب ان اطلق عليها دوال التكرار بالفرنسية تسمى Boucles وبالانجليزية Loops وكما يكمن ان نفهما من اسمها فهي دوال خاصة ب php تقوم بتكرار اومر .
في php هناك دالتين والاتاني سنتعرف عليهما اﻻن :
1 - دالة while :
اﻻولى وهي اﻻبسط هي while وتقوم بتكرار اﻻمر الى ان تصل الى شرط التوقف مثال بسيط :
في php هناك دالتين والاتاني سنتعرف عليهما اﻻن :
1 - دالة while :
اﻻولى وهي اﻻبسط هي while وتقوم بتكرار اﻻمر الى ان تصل الى شرط التوقف مثال بسيط :
<?php
$i = 1;
while ($i <= 10) {
print $i++;
}
?>
$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;
?>
$i = 1;
while ($i <= 10):
print $i;
$i++;
endwhile;
?>
تجدر اﻻشارة ان هناك دالة شبيهة ب while وهي do..while والفرق بين الدالتين هو ان الشرط ﻻ يتم التحقق من صحته اﻻ في النهاية و العكس صحيح بالنسبة ل while كالعادة مثل لتوضيح :
<?php
$i = 1;
do {
print $i++;
} while ($i<=10);
?>
$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."-";
}
?>
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."-";
}
?>
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;
}
}
?>
$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."-";
}
?>
for($i=1;$i<10;$i++){
if($i==7){
continue;
}
echo $i."-";
}
?>
وهنا سنلاحظ طباعة اﻻعداد من 1 الى 10 معدا الرقم 7 الدي سيتم تجاوزه بعد التحقق من قيمته بواسطة دالة شرطية,
في رعاية الله
0 تعليقات