تحديث آخر نسخة 1.8.37

تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
التباس في استخدام احد العوامل بداخل شرط if في Php
#1
التباس في استخدام احد العوامل بداخل شرط

مرحبا،،
لدي التباس بسيط في طريقة استخدام العامل or او ||
في احد الشروط بداخل احد السكريبتات. (هاك اخفاء الروابط عن الزوار،، اريد اضافة الغير مفعلين).

مثلا أنا عندي:


PHP كود :
if($mybb->user['usergroup'] == "1 || 5")
        {
        
//do something
        



او استخدم or Eam

لقد طالعت شرح الاخ بيبو هنا:- المشروطات Statements فى الـ php

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

اشكركم مسبقا على المساعدة.
تحياتي flower
الرد
شكر من طرف :
#2
نعم العاملين لهم نفس الأداء, الا ان or تعنى ان تتم المشروطة فى حالة تحقق احد الطرفين فقط وليس الأثنين معا, اما || تعنى و/او

يعنى تتحقق المشروطة اذا توفر الأثنين معا, او توفر احدهم فقط. (لست متأكد بنسبة 100% لأنى مبتعد عن الأمور البرمجية منذ فترة كبيرة بسبب ضغط الدراسة والعمل معا, وهذه الأمور تفقدها عندما تبتعد عنها, لكن بإذن الله المعلومة صحيحة)

كما انصحك ان تحذف علامة التنصيص "" طلامة انك تتعامل مع ارقام يعنى يصبح الأمر كالتالى
1 || 5 بدون علامات التنصيص وغير == بـ ===
(الأولى تعنى تحقق المشروطة اذا كانت القيمة متساوية, اما الثانية يجب ان تتساوى القيمة ونوع المدخل, وهذه ضرورية, لأن كما تعلم اذا كنت تقارن فى اشياء يمكن ان تكون قيمتها اما 1 او 0 فيمكن لـ 1 ان يتساوى مع true و 0 يتساوى مع false لذلك === تمنع مثل هذه الإلتباسات, فهى تتطلب تحقيق القيمة ونوع المدخل بأن واحد)
الرد
شكر من طرف :
#3
شكرا لك اخي بيبو على التوضيح
و على المعلومة الاضافية فعلا مفيدة،، سأحاول و ان شاء الله تنجح.
بارك الله فيك.
الرد
شكر من طرف :
#4
مرحبا،،
جربت الحل،، لكن المشكلة بقيت نفسها و لم يشتغل الهاك !!
فلم اعرف السبب، و بدأت ابحث فاكتشفت شيئين 2 :

1- انني غبي Smack :
اذا كان الزائر ضيف او عضو،،
فالزائر لا يمكنه ان يكون ضيف و عضو في وقت واحد.
لذا فاستعمال || او or نفسه.
(هناك من يقول البرمجة تحتاج شوية غباء) flower

2- و اكتشفت ان السينتاكس للشروط المتعددة في php هو :
هذا خطأ:
PHP كود :
if($mybb->user['usergroup'] == "1||5" )
{
//do something


و هذا هو الصح:

PHP كود :
        if( ($mybb->user['usergroup'] == "1" ) || ($mybb->user['usergroup'] == "5" ) )
        {
//do something
        



و قد نجحت في تحويل الهاك الى اخفاء الروابط عن الزوار و الغير مفعلين هيه

ارجو ان تستفيدوا و ربما سأضع الهاك هذه الايام.
تحياتي.
الرد
شكر من طرف :
#5
نعم اخى مظبوط الـ Syntax كان خاطئ لأن رموز المقارنة او المشروطات لا يجب وضعها داخل علامات التنصيص.
وعزرا لأنى سهوت عن ان انبهك لهذا, لكن من الجيد انك اكتشفتها بنفسك.

وايضا الـ Syntax الذى استخدمته انت يمكنك تنفيذه بطريقة اكثر انجازا
PHP كود :
if($mybb->user['usergroup'] == || )
        {
//do something
        

الرد
شكر من طرف :


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم