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

الموضوع: الجمل الشرطية .. كيف تتعامل معها ؟!

  1. #1

    الجمل الشرطية .. كيف تتعامل معها ؟!



    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته

    في هذا الدرس سنتعلم كيفية كتابة جمل شرطية قصيرة دون استخدام جملة If الشرطية ..

    من المألوف لدى المعظم تداول الجمل الشرطية بهذه الصيغة :
    كود PHP:
    if (expression) {
        
    // statements

    سنأخذ مثال ثم نحوّله إلى الطريقة التي سنتعلمها هذا اليوم :

    كود PHP:
    $a "1";
    $b "2";

    if (
    $b $a) {
        echo 
    '$b is bigger than $a';
    } else {
        echo 
    '$a is bigger than $b';

    قمنا في البداية في السطر الأول من الكود تعريف المتغير الذي قمنا بتسميته a وأعطيناه القيمة 1
    وكذلك في السطر الثاني قمنا بتعريف المتغير باسم b وقيمته 2

    الآن قمنا بكتابة جملة شرط تحتوي على جملة If في السطر الرابع من الكود ..
    ففي السطر الأول من جملة الشرط If قمنا بوضع تعبير Expression يقوم باختبار إذا كانت قيمة المتغير b$ أكبر من المتغير a$ فإذا تحقق الشرط يتم طباعة جملة :
    b is bigger than $a$
    ثم إذا فشل الشرط (أي لم يتحقق) يقوم مترجم السيرفر بطباعة النص :
    a is bigger than $b$
    لاحظ في الجمل المطبوعة بعد دالة echo قمنا بكتابتها بين علامتي التنصيص المفردة وليس المزدوجة أي ' وليس " وذلك لتجنب طباعة محتويات المتغيرات حيث أن العلامة المزدوجة تقوم بطباعة قيم المتغيرات المكتوبة بينها أي تطبع 1 بدلاً من a$ و 2 بدلاً من b$
    إلا أن العلامة المفردة تقوم بطباعة النص كما هو دونما تغيير أي a$ تطبع a$ و b$ تطبع b$
    طبعاً في هذه التجربة سيكون الناتج :
    b is bigger than $a$

    ماذا لو أردنا اختصار كل ذلك (أي جملة الشرط كاملة) بسطر واحد ،، يمكن استخدام الكود هذا:
    كود PHP:
    if ($b $a) { echo '$b is bigger than $a'; } else { echo '$a is bigger than $b'; } 
    عفواً ، لم أقصد ذلك ، لكني تذكرت أنه يمكننا عمل ذلك وتنتهي المشكلة !!

    سوف نتعلم الآن طريقة أخرى وأفضل نوعاً ما لاختصار السطر نفسه مرة أخرى:
    كود PHP:
    echo ($b $a '$b is bigger than $a' '$a is bigger than $b'); 
    ماذا لو حذفنا الأقواس من الجملة ؟؟ لا شك أنها لن تغير من معنى الكود ، فلنجرب ذلك :
    كود PHP:
    echo $b $a '$b is bigger than $a' '$a is bigger than $b'
    سيبدو الكود هكذا نوعاً من الأكواد الغير مفهومة للمبتدئين ، لذا ، قم باستخدامه في برامجك لتبدو أكثر احترافاً ..!!

    لقد نسيت شيئاً هاماً .!! هل تعرف ما هو؟؟! نسيت أن أشرح الكود الجديد .!!

    في الكود الجديد سواء الذي يحوي أقواساً أم لا فقد قمنا بكتابة الشرط أو التعبير Expression بعد دالة echo طبعاً إذا كنا نريد المساواة نضع إشارة == وليس = وبقية الإشارات حسب مقياس الإشارات في البي إتش بي ...

    ثم نضع علامة سؤال (؟) بعد الشرط والتي تعني أن النتيجة في حالة تحقق الشرط ستكون بعد علامة السؤال هذه ..

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

    تساؤل غريب !! ::
    ببساطة سأترك الحقل الأخير فارغاً وسأستغني عن النقطتين الرأسيتين ( في النهاية لأني لا أريد طباعة شيء في حال عدم تحقق الشرط ،،!!
    كود PHP:
    echo $b $a '$b is bigger than $a'
    عفواً ، سأخبرك ماذا سيحدث عند ذلك ، في ذلك الوقت ستظهر لك رسالة في البي إتش بي قريبة من هذه :
    Parse error: parse error in xxx on line xx
    هذا يعني وجود خطأ كبير في الكود أدى إلى توقف تنفيذ أكواد الصفحة التالية !!
    فلنجرب إذاً إعادة إشارة ( وبعدها سنترك فراغاً (أي لن نكتب شيئاً بعدها سوا ..
    كود PHP:
    echo $b $a '$b is bigger than $a' : ; 
    لا تجرب ، فذلك سيظهر لك نفس الخطأ:
    Parse error: parse error in xxx on line xx

    إذاً، ما الحل ؟؟؟!
    جرب الحل التالي:
    كود PHP:
    echo $b $a '$b is bigger than $a' ''
    لقد قمنا بوضع علامتي تنصيص ' و' متتاليتين ولم نكتب فيها شيئاً وهذا معناه عند عدم تحقق الشرط لا تطبع شيئاً ...
    وهذا اختصار لذلك العناء الشديد .....!!

    في هذه الحالة أنصحك أيضاً بنوع آخر من الجمل الشرطية ، شبيه بهذا :
    كود PHP:
    if ($b $a) echo '$b is bigger than $a'
    هذا النوع من الجمل الشرطية المنقوصة ...!!!!
    حيث اننا لم نستخدم الأقواس المعوجة { } هنا نكتب الشرط بين الأقواس بعد If وبعد الأقواس نضع نتيجة الشرط ..!!
    لكن ، ماذا لو قمنا بالضغط على المفتاح الذهبي (Enter) ثم كتبنا كوداً آخر ؟؟!
    هذا سيخبرك بالفشل !!
    لا تعجب ، لن تظهر لك رسالة خطأ .. وإنما سيظهر الكود الذي كتبته بعد النتيجة في سطر آخر دائماً ، حيث أنه لن يعتبر داخل جملة الشرط If وسيتم تنفيذه بمفرده ..
    ماذا عن الكود التالي:
    كود PHP:
    if ($b $a)
        echo 
    '$b is bigger than $a'
    نعم، إنه كود صحيح، حيث أنا نزلنا سطراً للأسفل لكن قبل كتابة النتيجة ولو نزلنا سطراً آخر بعد النتيجة وأكملنا النتيجة فلن تعتبر داخل الجملة الشرطية ......

    ستخبرني بأنك أعجبت إعجاباً شديداً في هذه الطريقة من الكتابة التي تبدو كشكل "أقرع" لعدم احتوائها على { و } وعدم مرونة التعامل معها ...!!

    لكن كيف تطبع جملة ما عند عدم تحقق الشرط في مثل هذا النوع من الجمل ؟؟

    خذ هذا الكود :
    كود PHP:
    if ($b $a)
        echo 
    '$b is bigger than $a';
    else
        echo 
    '$a is bigger than $b'
    قمنا بكتابة else في الأسفل ثم كتبنا نتيجة عدم تحقق الشرط ....

    يمكننا ضم الكود كاملاً في سطر واحد ، فمترجم PHP ذكي للغاية فيفهم هذا الكود بالطريقة الصحيحة :
    كود PHP:
    if ($b $a) echo '$b is bigger than $a'; else echo '$a is bigger than $b'
    يبدو الكود السابق جميل جداً لتعقيد طريقة كتابته ....!!
    في جميع الحالات قمنا بكتابة تعبير (شرط) Expression ونتيجة في حال تحقق الشرط أو التعبير وأحياناً نتيجة عند عدم تحقق الشرط ....

    هذه عدة نماذج لكتابة الجمل الشرطية ..
    سأقوم بكتابة المزيد عن هذه الجمل إن شاء الله إن أسعفني الوقت بعد الكتابة عن بعض الدوال والخصائص الأخرى .!!

    بقلم : أشرف السمهوري (sBForum)





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074


  2. #2


    UP .. UP ^
    أعتقد الموضوع مهم ،، اللي ما قرأه من المبتدئيبن يا ريت يقرأه





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  3. #3
    عضو نشيط جدا
    تاريخ التسجيل
    Nov 2003
    المشاركات
    461


    موضوع جميل جدا

    وشرح متميز

    يلزم كل مبتدئ في اللغة

    بالتوفيق





    __________________
    AlwatanVoice, www.alwatanvoice.com
    Almashroo, www.almashroo.com

    Pal Coder == Palestinian Coder

  4. #4


    شكراً عزيزي Pal Coder لمرورك وتعقيبك

    وأتمنى الجميع يقرأوا الموضوع





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Jun 2003
    المشاركات
    2,123


    جزاك الله خير مواضيعك موسوعة .





    __________________
    htaccess بكل بساطة

    الشفرة الموحدة "يونِكود"

    (إن من مفاسد هذه الحضارة أنها تسمي الاحتيال ذكاءً، والانحلال حرية، و"الرذيلة فناً" والاستغلال معونة) - مصطفى السباعي

  6. #6
    مُجَاهِد سابقاً
    تاريخ التسجيل
    Apr 2004
    المشاركات
    12,000


    جزاك الله خير ...





    __________________
    استخدم خاصية تنبيه المشرفين للضرورة وعند ملاحظة موضوع يخالف قوانين منتديات سوالف وسيتم مراجعة الموضوع او المشاركة المبلغ عنها على الفور

  7. #7


    تسلم اخوي jadweb.com
    واخوي مجاهد





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  8. #8
    عضو نشيط
    تاريخ التسجيل
    Jun 2005
    المشاركات
    255


    شكراً لك أستاذ أشرف.

    بارك الله فيك.





    __________________
    لا إله إلا الله

  9. #9


    العفو أخوي (أبو عبدالملك) ،، انت أستاذنا ..!!





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074

  10. #10


    موضوع روعة أخي sbforum





    __________________
    لا اله الا الله محمد رسول الله

  11. #11


    تسلم اخوي المنقذ وان شاء الله تكون استفدت





    __________________
    أحمد أبو النصر
    Junior php Developer
    +20166196074





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

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

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