التباس في استخدام احد العوامل بداخل شرط
مرحبا،،
لدي التباس بسيط في طريقة استخدام العامل or او ||
في احد الشروط بداخل احد السكريبتات. (هاك اخفاء الروابط عن الزوار،، اريد اضافة الغير مفعلين).
مثلا أنا عندي:
PHP كود :
if($mybb->user['usergroup'] == "1 || 5")
{
//do something
}
او استخدم or
لقد طالعت شرح الاخ بيبو هنا:-
المشروطات Statements فى الـ php
لكن لم افهم الفرق،، و مع ان الدرس يقول بأن لهما نفس العمل.
الا انني اريد قطع الشك باليقين،، و احتفظ بعامل واحد فقط داخل ذاكرتي الصغيرة
اشكركم مسبقا على المساعدة.
تحياتي
نعم العاملين لهم نفس الأداء, الا ان or تعنى ان تتم المشروطة فى حالة تحقق احد الطرفين فقط وليس الأثنين معا, اما || تعنى و/او
يعنى تتحقق المشروطة اذا توفر الأثنين معا, او توفر احدهم فقط. (لست متأكد بنسبة 100% لأنى مبتعد عن الأمور البرمجية منذ فترة كبيرة بسبب ضغط الدراسة والعمل معا, وهذه الأمور تفقدها عندما تبتعد عنها, لكن بإذن الله المعلومة صحيحة)
كما انصحك ان تحذف علامة التنصيص "" طلامة انك تتعامل مع ارقام يعنى يصبح الأمر كالتالى
1 || 5 بدون علامات التنصيص وغير == بـ ===
(الأولى تعنى تحقق المشروطة اذا كانت القيمة متساوية, اما الثانية يجب ان تتساوى القيمة ونوع المدخل, وهذه ضرورية, لأن كما تعلم اذا كنت تقارن فى اشياء يمكن ان تكون قيمتها اما 1 او 0 فيمكن لـ 1 ان يتساوى مع true و 0 يتساوى مع false لذلك === تمنع مثل هذه الإلتباسات, فهى تتطلب تحقيق القيمة ونوع المدخل بأن واحد)
شكرا لك اخي بيبو على التوضيح
و على المعلومة الاضافية فعلا مفيدة،، سأحاول و ان شاء الله تنجح.
بارك الله فيك.
مرحبا،،
جربت الحل،، لكن المشكلة بقيت نفسها و لم يشتغل الهاك !!
فلم اعرف السبب، و بدأت ابحث فاكتشفت شيئين 2 :
1- انني غبي
:
اذا كان الزائر ضيف او عضو،،
فالزائر لا يمكنه ان يكون ضيف و عضو في وقت واحد.
لذا فاستعمال || او or نفسه.
(هناك من يقول البرمجة تحتاج شوية غباء)
2- و اكتشفت ان السينتاكس للشروط المتعددة في php هو :
هذا خطأ:
PHP كود :
if($mybb->user['usergroup'] == "1||5" )
{
//do something
}
و هذا هو الصح:
PHP كود :
if( ($mybb->user['usergroup'] == "1" ) || ($mybb->user['usergroup'] == "5" ) )
{
//do something
}
و قد نجحت في تحويل الهاك الى اخفاء الروابط عن الزوار و الغير مفعلين
ارجو ان تستفيدوا و ربما سأضع الهاك هذه الايام.
تحياتي.
نعم اخى مظبوط الـ Syntax كان خاطئ لأن رموز المقارنة او المشروطات لا يجب وضعها داخل علامات التنصيص.
وعزرا لأنى سهوت عن ان انبهك لهذا, لكن من الجيد انك اكتشفتها بنفسك.
وايضا الـ Syntax الذى استخدمته انت يمكنك تنفيذه بطريقة اكثر انجازا
PHP كود :
if($mybb->user['usergroup'] == 1 || 5 )
{
//do something
}