النتائج 1 إلى 3 من 3

الموضوع: هل لدي أحدكم جواب منطقي !!!!

  1. #1

    هل لدي أحدكم جواب منطقي !!!!



    لدي دالة سرطية بسيطة

    كود PHP:
    if ( $val == "inc" )
                    
    $update_fields .= "`$key`='$key'+1, ";
                elseif ( 
    $val == "dec" )
                    
    $update_fields .= "`$key`='$key'-1, ";
                else
                    
    $update_fields .= "`$key`='$val', "
    كما هو واضح
    ذهبت لها ب $val أحيانا بالقيمة 0
    فكانت تنفذ الشرط الثالث بشكل صحيح
    ولكن في بعض الأحيان كانت تنفذ الشرط الأول

    فلما غيرتها ل


    كود PHP:
    if ( $val === "inc" )
                    
    $update_fields .= "`$key`='$key'+1, ";
                elseif ( 
    $val === "dec" )
                    
    $update_fields .= "`$key`='$key'-1, ";
                else
                    
    $update_fields .= "`$key`='$val', "

    أصبحت تعمل بشكل صحيح

    هل هناك تفسير للامر

    أعلم أن === تعني تساوي ومن نفس النوع
    ولكن 0 لا تساوي inc بأي حال من الأحوال :looking:





    __________________
    السيف أصدق أنباء من الكتب


  2. #2
    عضو فعال
    تاريخ التسجيل
    Jul 2003
    المشاركات
    1,576


    عند مقارنة نص ( inc ) برقم ( 0 ) تقوم الـ php بمحاولة توحيد ال types والذي يكون ارقام

    فعند محاولة تحويل النص inc إلى ارقام .. تكون النتيجة 0
    وفي حالتك ، فعلا في الحالة الاولى تكون ال inc == 0


    - لماذا يتم تحويلها إلى ارقام ؟ وليس يتم تحويل ال 0 إلى نص ؟
    لأنك قمت بكتابة الرقم في الشرط الاول ( $val ) ولهذا يفضل استخدام
    كود PHP:
    if ("inc" == $val

    ولهذا اصدرت php ال operator هذا === واللي يشيك على النوع والكمية والحجم والارتفاع

    وممكن تريح بالك وتستخدم ارقام دليلية في برمجتك بدل نص دليلي .. يعني بدل inc و desc خليها 1 - 2 - 3





    __________________
    SWF Thumbnail - tweet me

  3. #3


    عند مقارنة نص ( inc ) برقم ( 0 ) تقوم الـ php بمحاولة توحيد ال types والذي يكون ارقام

    فعند محاولة تحويل النص inc إلى ارقام .. تكون النتيجة 0
    وفي حالتك ، فعلا في الحالة الاولى تكون ال inc == 0


    - لماذا يتم تحويلها إلى ارقام ؟ وليس يتم تحويل ال 0 إلى نص ؟
    لأنك قمت بكتابة الرقم في الشرط الاول ( $val ) ولهذا يفضل استخدام
    كود PHP:
    if ("inc" == $val

    ولهذا اصدرت php ال operator هذا === واللي يشيك على النوع والكمية والحجم والارتفاع

    وممكن تريح بالك وتستخدم ارقام دليلية في برمجتك بدل نص دليلي .. يعني بدل inc و desc خليها 1 - 2 - 3
    طيب لما خليت في الشرط الأول === والثاني تركته
    أخذت القيمة الثالث !!!

    مع العلم أنها كانت لوب فيها 15 قيمة منهم 13 قيمة 0
    4 منهم أستخدموا الشرط الثالث
    والباقي كله أستخدم الشرط inc ولما خليته === أستخدم الشرط dec

    عموما أول مرة أجد فائدة من === لأني ما كنت أجد لها فائدة من قبل وأقول زايدة دودية





    __________________
    السيف أصدق أنباء من الكتب





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض