منتدى الطيب

الدرس الثاني : هيا بنا نبدأ مع لغة php ! Gwgt0-10

انضم إلى المنتدى ، فالأمر سريع وسهل

منتدى الطيب

الدرس الثاني : هيا بنا نبدأ مع لغة php ! Gwgt0-10

منتدى الطيب

هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

مرحب بكم

ابحث

الدخول السريع

مايو 2024

الإثنينالثلاثاءالأربعاءالخميسالجمعةالسبتالأحد
  12345
6789101112
13141516171819
20212223242526
2728293031  

اليومية اليومية


    الدرس الثاني : هيا بنا نبدأ مع لغة php !

    admin
    admin
    المدير
    المدير


    عدد المساهمات : 141
    تاريخ التسجيل : 25/01/2010
    العمر : 27
    الموقع : https://altaiyb.ahlamontada.com/

    الدرس الثاني : هيا بنا نبدأ مع لغة php ! Empty الدرس الثاني : هيا بنا نبدأ مع لغة php !

    مُساهمة من طرف admin الخميس أغسطس 01, 2013 9:50 pm

    لحمد لله والصلاة والسلام على رسول الله

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


    هذا الدرس ضمن سلسة دروس الدورة التالية لتعلم لغة php !
    [b class="bbc"]
    *الثوابت :[/b]

    - يتم تعريف الثوابت بإستخدام الكلمة المحجوزة const قبل اسم الثابت أو من خلال الدالة define ويتبع اسم الثابت نفس قواعد كتابة اسم المتغير غير أنه لا يبدأ بالعلامة [b class="bbc"]$ [/b]ويُفضل أن يُكتب بالحروف الكبيرة
    - يجب أن يُعطى الثابت قيمة عند عملية تعريفه ولا يمكن تغيير هذه القيمة فيما بعد
    أمثلة لتعريف الثوابت :
    const أحمد = "ahmed";
    const AAA = 'Ahmed';
    define("BBB","Mohammed");
    echo أحمد.AAA.BBB;
    ?>
    [b class="bbc"]*حالة الشرط if :[/b]
    - وهي أنه في حالة تحقق الشرط يتم تنفيذ الأمر وإلا لا يتم التنفيذ والشرط في النهاية إما أن يكون محقق true أو غير محقق false
    الصورة العامة لحالة if البسيطة هو :
    if(/* الشرط */)
    /* الأمر المراد تنفيذه في حالة تحقق الشرط */;

    OR


    if(/* الشرط */)
    {
    // أمر1
    // أمر2
    // أمر3
    }
    [b class="bbc"]ملاحظة :[/b] في حالة تحقق شرط جملة if وعدم وجود أقواس يتم تنفيذ الأمر البرمجي بعد if وصولاً لنهاية الأمر البرمجي المنتهي بالفاصلة المنقوطة ;

    [b class="bbc"]حالة الشرط if else وتكون على الصورة :[/b]
    if(/* الشرط */)
    {
    // الجمل البرمجية في حالة تحقق الشرط
    }
    else
    {
    // الجمل البرمجية في حالة عدم تحقق الشرط
    }
    [b class="bbc"]حالة الشرط المتعددة else if وتكون على الصورة :[/b]
    if(/* الشرط */)
    {
    // الجمل البرمجية هنا
    }
    else if(/* الشرط */)
    {
    // الجمل البرمجية هنا
    }
    .
    .// وهكذا تكرار غير محدود
    .
    else if(/* الشرط */)
    {
    // الجمل البرمجية هنا
    }
    else
    {
    // الجمل البرمجية هنا
    }
    ولا يشترط كتابة جملة else المفردة في النهاية وأيضاً يمكن الإستغناء عن أقواس المجموعة إذا كان لدينا جملة واحده داخل المجموعة

    أمثلة على جملة if :
    if(true)





    echo "true
    ";

    if(true)
    {
    echo "

    true

    ";
    echo "

    inside if

    ";
    }

    if(false) echo "false
    ";

    if(false)
    echo "

    false

    ";
    echo "outside if";
    ?>
    - في حالة true الشرط محقق دائماً أما في حالة false فالشرط غير محقق دائماً

    أمثلة إستخدام if مع أنواع البيانات المختلفة وكما بيَّنا الدرس السابق أن أي عدد بخلاف الصفر فهو يعبر عن القيمة true وأن أي سلسة نصية بخلاف السلسة النصية الفارغة فهي أيضاً تعبر عن القيمة true والمثال التالي يوضح هذا :
    if(0)
    echo "

    0 true

    ";
    else
    echo "

    0 false

    ";

    if(13)
    echo "

    13 true

    ";
    else
    echo "

    13 false

    ";

    if(-50)
    echo "

    -50 true

    ";
    else
    echo "

    -50 false

    ";

    if(null)
    echo "

    null true

    ";
    else
    echo "

    null false

    ";

    if('')
    echo "

    '' true

    ";
    else
    echo "

    '' false

    ";

    if(' ')
    echo "

    ' ' true

    ";
    else
    echo "

    ' ' false

    ";

    if('ahmed')
    echo "

    ahmed true

    ";
    else
    echo "

    ahmed false

    ";
    ?>

    [b class="bbc"]* حالة if المختصرة :[/b]
    condition?true:false;
    [b class="bbc"]مثال:[/b]
    echo true?"yes":"no";
    ?>
    [b class="bbc"]* العمليات المنطقية :[/b]
    && و
    and و
    || أو
    or أو
    ! عكس
    xor ... Smile


    $a and $b هي true في حالة أن $a و $b كلاً منهما يكون true
    $a && $b هي true في حالة أن $a و $b كلاً منهما يكون true
    $a or $b هي true في حالة أن أي من $a أو $b يكون true
    $a || $b هي true في حالة أن أي من $a أو $b يكون true
    !$a هي true في حالة أن $a يكون false و false في حالة $a يكون true
    $a xor $b هي true في حالة أن أي من $a أو $b يكون true ولكن غير متمشابهين
    [b class="bbc"]
    ملاحظة :[/b]
    يمكنك إستخدام أي صيغة لعمليتي and و or

    - الكود التالي ينفذ جدول الصواب والخطأ للعمليات المنطقية السابقة :
    echo "AND &&
    ------------
    true and true = ";
    if(true and true)
    echo "true
    ";
    else
    echo "false
    ";

    echo "true and false = ";
    if(true and false)
    echo "true
    ";
    else
    echo "false
    ";

    echo "false and false = ";
    if(false and false)
    echo "true
    ";
    else
    echo "false
    ";

    echo "
    OR | |
    ------------
    true or true = ";
    if(true or true)
    echo "true
    ";
    else
    echo "false
    ";

    echo "true or false = ";
    if(true or false)
    echo "true
    ";
    else
    echo "false
    ";

    echo "false or false = ";
    if(false or false)
    echo "true
    ";
    else
    echo "false
    ";

    echo "
    XOR
    ------------
    true xor true = ";
    if(true xor true)
    echo "true
    ";
    else
    echo "false
    ";

    echo "true xor false = ";
    if(true xor false)
    echo "true
    ";
    else
    echo "false
    ";

    echo "false xor false = ";
    if(false xor false)
    echo "true
    ";
    else
    echo "false
    ";

    echo "
    !
    ------------
    !true = ";
    if(!true)
    echo "true
    ";
    else
    echo "false
    ";

    echo "!false = ";
    if(!false)
    echo "true
    ";
    else
    echo "false
    ";
    ?>
    [b class="bbc"]* عمليات المقارنة :[/b]
    == يساوي
    != لا يساوي
    > أكبر من
    < أصغر من
    >= أكبر من أو يساوي
    <= أضعر من أو يساوي
    === مساواة القيم من نفس النوع
    !== عدم مساواة القيم من نفس النوع


    - أظنهم واضحين ولكن سأوضح عمل المساواة من نفس النوع وعدم المساواة من نفس النوع
    - وكما عرفنا في الأعلى أن الصفر مساوي للقيمة false وأي عدد خلاف الصفر مساوي للقيمة true وقيمة السلسة النصية بخلاف السلسة النصية الفارغة مساوية للقيمة true فلهذا لا يصلح أن أستخدم قيم المساواه العادية وكمثال إذا أردت أن أختبر القيمة على أنها false و false فقط إذاً علي إستخدام عملية المساواة من نفس النوع والمثال التالي يوضح العملية :
    if('10ahmed' == 10)
    echo "10ahmed == 0 yes
    ";
    else
    echo "10ahmed == 0 no
    ";

    if('' == 0)
    echo "'' == 0 yes
    ";
    else
    echo "'' == 0 no
    ";

    if(0 == false)
    echo "0 == false yes
    ";
    else
    echo "0 == false no
    ";

    if('' == false)
    echo "'' == false yes
    ";
    else
    echo "'' == false no
    ";

    if(-10 == true)
    echo "-10 == true yes
    ";
    else
    echo "-10 == true no
    ";
    ?>
    - ولكن عند استخدام عمليات المساواه من نفس النوع سيتم التعرف على القيم ومساواتها من نفس نوعها فالمثال السابق يكون على الشكل التالي :
    if('10ahmed' === 10)
    echo "10ahmed == 0 yes
    ";
    else
    echo "10ahmed == 0 no
    ";

    if('' === 0)
    echo "'' == 0 yes
    ";
    else
    echo "'' == 0 no
    ";

    if(0 === false)
    echo "0 == false yes
    ";
    else
    echo "0 == false no
    ";

    if('' === false)
    echo "'' == false yes
    ";
    else
    echo "'' == false no
    ";

    if(-10 === true)
    echo "-10 == true yes
    ";
    else
    echo "-10 == true no
    ";
    ?>
    - التالي مثال على حالة if else المتعدده , فلنفرض أن لدينا قيمة ولتكن مُعرف الصفحة الـ id وعلى أساس قيمته يتم إنشاء إرتباط تشعُبي لصفحات مختلفه فيكون الكود كالتالي :
    $id = 200;
    if($id == 100)
    {
    echo "

    go page1

    ";
    }
    else if($id == 200)
    {
    echo "

    go page2

    ";
    }
    else if($id == 400)
    {
    echo "

    go page3

    ";
    }
    else if($id == 500)
    {
    echo "

    go page4

    ";
    }
    else
    {
    echo "

    go home

    ";
    }

    ?>
    [b class="bbc"]* حالة switch case :[/b]
    - يمكن عمل نفس المثال السابق بإستخدام جملة switch case كالتالي :
    $id = 250;
    switch($id)
    {
    case 100:
    echo "

    go page1

    ";
    break;
    case 200:
    echo "

    go page3

    ";
    break;
    case 300:
    echo "

    go page4

    ";
    break;
    default:
    echo "

    go home

    ";

    }
    ?>
    - حيث أن جملة break هي للخروج بعد تنفيذ الأمر

    * دالة defined للتعرف على الثابت هل هو موجود أم لا وتعيد القيمة true في حالة وجوده وتعيد القيمة false إن لم يكن موجود
    * دالة isset للتعرف على المتغير هل موجود ومسند له قيمه أم لا وتعيد القيمة true في وجود المتغير ووجود قيمة مسنده له وتعيد القيمة false في حالة عدم وجود المتغير أو عدم وجود قيمة مسنده له أو أن تكون القيمة المسنده للمتغير هي القيمة الفارغة null
    والمثال التالي يوضح عملهم :
    define("AAA","Mostaf ");
    const BBB = "Khaled ";
    $var1;
    $var2 = null;
    $var3 = '';

    if(defined("AAA"))
    echo AAA;
    if(defined("BBB"))
    echo BBB;
    if(defined("CCC"))
    echo CCC;

    if(isset($var1))
    echo '
    $var1 is set';
    if(isset($var2))
    echo '
    $var2 is set';
    if(isset($var3))
    echo '
    $var3 is set';
    if(isset($var4))
    echo '
    $var4 is set';
    ?>

    [b class="bbc"]حلقات الدوران :[/b]

    [b class="bbc"]* حلقة الدوران[/b] [b class="bbc"]for[/b] [b class="bbc"]:[/b]
    الشكل العام لها كالتالي :
    for(/*بداية الحلقة*/;/*شرط التوقف*/;/*معامل الزيادة أو النقصان*/)
    {
    /*
    الكود البرمجي المراد تكراره عدد من المرات
    */
    }
    ?>
    [b class="bbc"]* مثال :[/b]
    for($i=0;$i<10;$i++)
    {
    echo '

    $i='.$i.'

    ';
    }
    ?>
    أو كتابتها بهذا الشكل إن كانت تعليمه واحده
    for($i=0;$i<10;++$i) echo '

    $i='.$i.'

    ';
    ?>
    لتخطي دورة معينة والإنتقال للتليه نستخدم الكلمة المحجوزة continue
    [b class="bbc"]* مثال :[/b]
    for($i=0;$i<10;$i++)
    {
    if($i == 5) continue;
    echo '

    $i='.$i.'

    ';
    }
    ?>
    - وإن أردنا الخروج من الحلقة نهائياً نستخدم break
    [b class="bbc"]* مثال :[/b]
    for($i=0;$i<10;++$i)
    {
    if($i == 5) break;
    echo '

    $i='.$i.'

    ';
    }
    ?>
    [b class="bbc"]* حلقة الدوران while[/b] [b class="bbc"]:[/b]
    - الصيغة العامة
    while(/*الشرط*/)
    {
    /*
    الكود المراد تكراره
    */
    }
    ?>
    - وتعني الدوران في حالة تحقق الشرط وفي حالة عدم تحققه لا يتم الدخول للحلقه
    [b class="bbc"]* أمثلة :[/b]
    $count = 0;
    while(10)
    {
    echo "

    Hi

    ";
    }
    while(true)
    {
    echo "

    Hi

    ";
    }
    while('ahmed')
    {
    echo "

    Hi

    ";
    }
    while($count < 10)
    {
    echo "

    Hi

    ";
    }
    while($count != 10)
    {
    echo "

    Hi

    ";
    }
    ?>
    - جميع الحلقات السابقة حلقات غير منتهيه تسبب تجمد المتصفح والضغط على الخادم والسبب أن الشرط محقق دائماً كما نعلم

    * أمثلة على حلقات صحيحة ومنتهية :
    $count = 1;
    while($count <= 10)
    {
    echo "

    Hi

    ";
    $count++;
    }
    while(true)
    {
    echo "

    YES

    ";
    if($count++ == 20) break;
    }
    ?>
    [b class="bbc"]* حلقة الدوران do while :[/b]
    - وهي نفس حلقة الدوران while ولكن الفرق عنها أنها تنفذ دوران واحد قبل إختبار تحقق الشرط وصيغتها العامة هي :
    do
    {
    /*
    الأكواد المراد تكرارها
    */
    }while(/*الشرط*/);
    ?>
    [b class="bbc"]* أمثلة :[/b]
    do
    {
    echo "

    Hi

    ";

    }while(false);

    $count = 0;
    do
    {
    echo '

    $count = '.++$count.'

    ';

    }while($count < 10);

    ?>
    [b class="bbc"]ملاحظة :[/b] في كل حلقات التكرار السابقة يمكن استخدام continue لتخطي حلقة أو الخروج نهائياً من الحلقة بإستخدام break

    هناك صيغ أخرى لإستخدامها مع الأوامر البرمجية كـ if و for و while و switch لإستخدامها بدلاً من الأقواس والصيغ العامة لها كالتالي :
    if (/*الشرط*/):
    /*
    أي عدد من الأوامر البرمجية
    */
    endif;

    // الحالة المتعدده
    if(/*الشرط*/):
    /*
    أي عدد من الأوامر البرمجية
    */
    elseif(/*الشرط*/):
    /*
    أي عدد من الأوامر البرمجية
    */
    elseif(/*الشرط*/):
    /*
    أي عدد من الأوامر البرمجية
    */
    endif;

    while(/*الشرط*/):
    /*
    الأوامر البرمجية المراد تكرارها
    */
    endwhile;

    for(/*أوامر الحلقة*/):
    /*
    الأوامر البرمجية المراد تكرارها
    */
    endfor;

    switch(/*القيمة*/):
    case "":
    // ...
    break;
    case "":
    // ...
    break;
    default:
    //...
    endswitch;
    ?>
    [b class="bbc"]التمرين :[/b]
    - إطبع جدول الضرب 12*12 في جدول
    - إطبع جدول الضرب للعدد 5 في صف واحد من جدول
    - إطبع جدول الضرب للعدد 5 في عمود واحد من جدول

    [b class="bbc"]ملاحظة :[/b] إستخدم وسم table في الـ HTML

    الموضوع الاصلي
    هنا

      الوقت/التاريخ الآن هو الثلاثاء مايو 07, 2024 1:26 pm