حول موضوع switch و case في php

من فضلكم ارجو المساعده في php لمن يكون عندي عدة Cases بحيث اني احمل ملف و بعدين اختار واحده من الكيسات عشان ينفذها هذه عملتها ، الان اريد اعرف كيف اضيف خيار انه ينفذ كل الخيارات الموجوده داخل الكيسات كلها يعني مثلا اضيف كلمه All ولمن اختارها يقوم يتنفيذ كل الكيسات الاخرى رجاء ساعدونني ؟؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

إن كنت قد فهمتك جيدا فهذا هو الحل :

switch ($something) {
    case "All" : 
        // some code here ويمكن تخليه فاضي بدون كود هنا، اختياري
    case "other1" :
        // some code here
    if ($something != "All") { break; }
    case "other2" :
        // some code here
    if ($something != "All") { break; }
}

الفكرة في أن الكيس الأولى المطلوب منها تنفيذ باقي الكيسات تكون أول كيس وأن لا تحتوي على جملة break ، أما باقي الكيسات فتضع فيها الأكواد المطلوبة وعند نهاية كل منها تضع جملة break ولكنها مشروطة ب if .

إذا كنت مصر على switch ربما يساعدك هذا الحل

switch($c):
    case "c1":
        actionC1();
        break;
    case "c2":
        actionC2();
        break;
    case "all":
        actionC1();
        actionC2();
        break;
endswitch;

لاستخدام الكل ألغي كلمة "break" .

انا عملت خيار الكل تسهيل للمستخدم بمجرد ما يختارها ينفذ كل خيارات

كيف بعمل

جرب جعل break مشروطة

if (whatever != "All")
   break;

تعديل: أو أن تكون switch بأكملها مشروطة

الطريقة الأولى لن تنفع

كيف اخلي switch مشروطه وفين احط الشرط

الطريقه الاولى انه لو حذفت break ما راح ينفع

if (whatever == "All") {
  //ما تريد تنفيذه عند اختيار الكل
} else {
  //switch تتضمن كل الحالات الأخرى
}

قد تكون هناك طريقة أفضل لكن هذا ما استطعت التفكير به

هذا يعني أن عليه كتابة الكود مرتين!

الأفضل له هو شيء مثل

if a=1 || a=all

elseif a= 2 || a=all

elseif a=3 || a=all

............

كلامك صحيح.

لكن أليس من المفترض أن يستخدم if فقط كما ذكرت في تعليقك الأول؟ باستخدام elseif العبارات التابعة للشرط الأول فقط ستتنفذ في حال أن a=all.

آسف، if وحدها هي ما تحتاج إليه.

if a=1 || a=all

if a= 2 || a=all

if a=3 || a=all

كما يوجد switch يوجد قبلها if/else/elseif

وجودها ليس للتكرار لكن لتميز أحدها عن الآخر

في حالتك الأفضل استخدام if وحدها

يعني احذف switch بالمره

لا بأس بذلك كما أن تغييرها سهل، أحيانا تكون أوامر الشرط غير سويتش أكثر كفاءة مثل حالتك هذه، لأن سويتش تقف عند تنفيذ الشرط ولا تكمل العمل بينما غيرها يتيح لك خيارات كثيرة.