[php] جملة break وطريقة استخدامها
مدرج تحت قسم: دروس
يتكون اي برنامج php من سلسلة من الجمل والاوامر ، تكون الجمل عبارة عن دوال او جمل شرطية او اي اوامر اخرى يحتاجها المبرمج.
اليوم سأتكلم عن واحدة من هذه الجمل هي break
هذه الجملة لها استخدامات عديدة والاستخدام الشائع لها في تركيب switch ، لكن لها استخدام اخر داخل حلقة التكرار (loop) وفائدتها تجعل compiler يخرج من حلقة التكرار
سنرى هذا المثال بدون إستخدام break ،
المثال : لدي مصفوفة مكونة من 5 عناصر اريد البحث عن اذا كان هناك عنصر يساوي 0
$items = array(1, 2, 3, 0, 4, 5);
$c = count($items);
$i = 0;
while ($i < $c)
{
if ($items[$i] == 0) {
echo '0 item is found';
}
$i++;
}
يقوم هذا الكود بالبحث في جميع عناصر المصفوفة ، حتى ولو وجد العنصر المطلوب ، فإنه سيكمل حتى نهاية المصفوفة
يوجد حلين لهذه المشكلة ، الاول استخدام break والاخر سأذكره بعد قليل،
بإستخدام break سيكون الكود :
$items = array(1, 2, 3, 0, 4, 5);
$c = count($items);
$i = 0;
while ($i < $c)
{
if ($items[$i] == 0) {
echo '0 item is found';
break;
}
$i++;
}
هنا سيتوقف loop بعد إيجاد العنصر المطلوب ولن يكمل الى نهاية المصفوفة.
ملاحظة : بعض المبرمجين لا يرغبون في إستخدام جملة break ، ويفضلون إستخدام طرق اخرى لتنفيذ مهمة break ، لنأخذ واحدة من هذه الطرق
سنستخدم نفس المثال السابق:
$items = array(1, 2, 3, 0, 4, 5);
$flag = false;
$c = count($items);
$i = 0;
while ($i < $c && $flag !== true)
{
if ($items[$i] == 0) {
$flag = true;
}
$i++;
}
وأخيراً، فإن أصبت فمن الله وإن أخطأت فمن نفسي والشيطان، ومن له رأي أو ملاحظة، فيمكننا نقاش ذلك هنا.
روابط ذات صلة :


السلام عليكم،،
بارك الله فيك أخي “بال كودر”
لي تحفظ على التسمية “جملة”… هذه جاءت ترجمة للفظ “Statement” وهي لفظة تطلق على السطر البرمجي أو ما ينتهي بفاصلة منقوطة “؛”.
والترجمة الصحيحة – في رأيي – هي “العبارة”
ولي سؤال:
أي الطريقتين التي ذكرتهما أفضل للمترجم “Compiler”؟
أخوك
شكرا على الشرح ..كفيت ووفيت
أشكرك,
ما رأيك في استخدام exit; بدلاً من break; ؟ , وما هي الدالة الأسرع بينهما ؟ وهل تنصح باستخدامها بشكل مكثف في السكربت في الشروط وغيرها لزيادة سرعة السكربت ؟
أخي أحمد
exit تستخدم للخروج من البرنامج كله وليس من loop معينة
هذا هو الفرق بينهما
أخوك
عبد الله خالد
اولا : بالنسبة للترجمة ، الصراحة انا اواجه مشكلة فعلا في ترجمة المصطلحات الى اللغة العربية خصوصا ان بعض المصطلحات العربية عندما تسمعها تعتقد انها لا تمت بصلة للامر نفسه
ثانيا : بالنسبة للفرق ، لا يوجد هناك فرق وحسب ما اعرف وما قرأته انه لا فرق في الاداء بين break و الطرق الاخرى
Social wonders
شكرا لك
أحمد
كما ذكر اخي عبد الله ، exit تخرج من البرنامج كله ، اما break فتخرج من loop والامر exit مشابه للامر die
شكرا لكم
السلام عليكم
شرح رائع وموفق
اخوي اريد ان اسألك بخصوص الطريقتين
ايهما افضل من ناحية سرعة التنفيذ وقلة الضغط في البرمجة
وشكرا لك
أخى قاتل البيسك :
ذكر أخى Pal Coder فى رده على هذا الإستفسار :
[quote]
بالنسبة للفرق ، لا يوجد هناك فرق وحسب ما اعرف وما قرأته انه لا فرق في الاداء بين break و الطرق الاخرى[/quote]
جزاك الله خيراً Pal Coder على المعلومات الجميله
شكرا لك اخى عاشق الصداقه