دورة PHP الجزء 5

تابع دورة البي أتش بي من الدرس الأول حتى الرابع

في هذا الجزء سنتكلم عن:

أكواد التحكم (العبارات الشرطية, الحلقات)

كما تعلمنا سابقاً بعدما قمنا بتجهيز السيرفر الشخصي الافتراضي
تعلمنا كيف يمكننا إنشاء ملف PHP وحفظه بالصيغة .php وكتابة الأكواد داخل علامات الـ php

هنا العبارات الشرطية, والتي تتكون من if و if..else وswitch، والحلقات التي تتكون من while و do…while و for و foreach.. سنشرحها واحدة واحدة.

العبارة الشرطية if

عندما تريد عمل أي شي أحياناً تقترن بالكلمة if والتي تعني باللغة العربية "إذا", فمثلاً "إذا" كانت السلعة التي أريد بيعها وصلت للحد الذي أطمح إليه وهو 200 ريال فأنا موافق, نقوم ببرمجة الجملة السابقة بالعبارة التالية:

<?
$ownerlimit = 200;
$buyerdeal = 150;
if($buyerdeal == $ownerlimit) {
   echo("OK");
}
?>

 النتيجة لا شيء، لن يتم طباعة OK، لأن 150 لا تساوي 200, ولكن لو تم تغيير 150 إلى 200 فسيتم طباعة OK.

نلاحظ أولاً أننا استخدمنا العلامة = وكررنها كالتالي == , نعم يجب ذلك في العبارات الشرطية دائماً تكون علامة المساواة مكررة == وهي من ضمن علامات عملية المقارنة, وإليك جدول العمليات داخل العبارات الشرطية:

 لو لاحظنا في كودنا السابق أننا كتبنا == , فمعناه إذا كان المبلغ 200 ريال (فقط) فأنا موافق، أي لو كان 300 ريال فأنا غير موافق! طبعاً ما فيه أحد ما يقول زيادة الخير خيرين، لذلك المفروض أننا نكتب "إذا كان المبلغ المطروح (يساوي أو أكبر من) 200 ريال، فالعلامة التي نود أن نضيفها الآن هي =< لكي يكون الكود البرمجي بشكل الصحيح الذي تم التخطيط له.

العبارة الشرطية if … else

سنقوم الآن بتجربة if..else وهي بالضبط نفس if ولكن بزيادة else التي تعني "وإلا" فهي تكون عندما لا يتم تنفيذ العبارات الشرطية المدخلة, نطبق مباشرة:

<?
$ownerlimit = 200;
$buyerdeal = 150;
if($buyerdeal >= $ownerlimit) {
   echo("OK");
} else {
   echo("NO");
}
?>

 الكود واضح جداً كما تم شرحه قبل قليل, وهو كالتالي "إذا" 150 "أكبر من أو يساوي" 200 أطبع OK "وإلا" أطبع NO.

العبارة الشرطية if … elseif … else

يمكنك إضافة أكثر من شرط في نفس العبارة الشرطية بالطريقة التالي if … elseif … else حيث تكون متداخله ببعضها كالتالي:

<?
$ownerlimit = 200;
$buyerdeal = 150;
if($buyerdeal >= $ownerlimit) {
   echo("OK");
} elseif($buyerdeal == 0) {
   echo("WHAT?");
} else {
   echo("NO");
}
?>

 الآن اتضحت لنا الصورة بما يتعلق بالعبارات الشرطية (if) و (if … else) و (if … elseif … else)

العبارة الشرطية switch

سننتقل إلى العبارة الشرطية switch وهذا هو المثال الخاص بها:

<?
$i = 3;
switch ($i)
{
   case 1:
      echo "Num 1";
      break;
   case 2:
      echo "Num 2";
      break;
   case 3:
      echo "Num 3";
      break;
   default:
      echo "NOTHING";
}
?>

لنشرح الكود السابق, سيتم طباعة Num 3 لأن المتغير $i يساوي 3 هذه الطريقة جميله لعمل خيارات كثيرة.

الآن سننتقل إلى مرحلة الحلقات والتي تسمى Loops وهذا العملية توفر عليك عملية تكرار كبير فهي كالحلقة تقوم بتحديد عدد مرات الدوران

ومنها while و do … while و for و foreach

الحلقة while

كالتالي:

<?
$i = 0;
while($i<10) {
   echo($i . "<br />");
   $i++;
}
?>

 النتيجة ستكون كالتالي :

0

1

2

3

4

5

6

7

8

9

العملية واضحة جداً وللتوضيح <br/> هو وسم (سطر جديد) في لغة XHTML

الحلقة do …while

ننتقل إلى do … while وهي لتنفيذ الأمر أول مره مهما كان الظرف أو الحالة بعدها يقوم بالتأكد من أن الحالة تنطبق عليه.

<?
$i = 0;
do {
   echo($i . "<br />");
   $i++;
} while($i<10)
?>

النتيجة نفس نتيجة الكود السابق

الآن ننتقل إلى حلقات الـ for و foreche والتي تقوم بنفس العملية وهي تكرار عملية كحلقة ولكن بطريقة مختلفة ومبسطة

الحلقة for

for ($i=0; $i<10; $i++)
{
   echo($i . "<br />");
}

 حيث سيتم طباعة أيضاً من 0 إلى 9 أسطر تحت بعض, الاختلاف هنا أنه تم كتابة الأمر داخل الشرط مباشرة مع عملية الزيادة $i++

الحلقة foreach

هذه الحلقة هي التي تختلف قليلاً عن أخواتها فهي تعتمد على المصفوفات بشكل جميل ويجب الأخذ باعتبارها بشكل جيد لأن كثير من الأوامر في لغة البرمجة الـ PHP تنتج لنا مصفوفات يمكننا التعامل معها مثل عندما نجلب بيانات من قاعدة البيانات يتم جلبها في مصفوفة لعرضها بطريقة حلقية بالـ foreach.

<?
$i = array("one","two","three");
foreach ($i as $value)
{
   echo $value . "<br />";
}
?>

 النتيجة:
one
two
three

بإذن الله في الدروس القادمة سنتعلم كيفية الاتصال بقاعدة البيانات وجلب بيانات وتحديث وحذف البيانات أي جزء خاص بقاعدة البيانات و PHP.

لكن ذلك بعد أن نكمل دورتنا المجدولة, نلقاكم في درس آخر بإذن الله

وشكراً لكم.

  • الله يعطيك العافية على مجهودك الكبير في إعداد هذه الدروس

    ،،

    بإذن الله ترون تطبيقي قريباً

  • مزعبدالله

    الله يعطيك العافيه أخي عبدالملك

    مجهود تشكر عليه وجعله الله في موازين حسناتك

    لدي سؤالين

    1/ في الكود لمثال for
        echo($i . “”);

    ماذا تعني (&nbsp
    ????????????

    2/بالنسبة لحلقة foreach أتمنى أن يكون هنالك مثال أخر للتوضيح لاني مافهمت كيف ومتى استخدمها ؟؟؟

    بارك الله فيك

  • م.عبدالله

    الله يعطيك العافية أخي عبدالملك
    وجعلها الله في ميزان حسنناتك

    لدي سؤالين

    1/في حلقة for
        echo($i . “”);
    ماذا تعني &nbsp
    ???????????????

    2/بالنسبة لحلقة foreach
    أتمنى أن تضع مثال أخر للتوضيح

    بصراحه مافهمت متى وكيفية استخدم هذه الدالة؟

    بارك الله فيك

  • شكراً لك أخوي عبدالله, الله لا يحرمنا من تشجيعك

    م.عبدالله حياك الله

    1/ تعني بلغة الـ XHTML مسافة لقد تم اخذها بالغلط عند كتابة الكود تم مسحها

    2/ حالياً بشكل مبدأي المثال الأول يوضح طريقتها البسيطه لكن سيتم بإذن الله التطرق لها بشكل موسع كما طرحت

    تقبل اطيب تحياتي لك

  • يوسف العتيبي

    جزاك الله كل خير اخ عبد الملك

    بارك الله في مجهودك الطيب

    وبالتوفيق لك يارب

  • sami

    جزاك الله كل خير على الدرس الجميل ..

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

    الله يعطيك العافية 🙂

  • الله يعطييك العاافية

  • عبدالله الزهراني

    الله يعطيك الصحة والعافية عبدالملك ، جزآك الله خير وجعل مثوآك الجنة يارب

    أعتذر عن التطفل ، ومساعدتك في الاجابة عن بعض الاسئلة او توضيح بعض الاشياء

    ————————————-

    بخصوص العبارة الشرطية switch تحتوي في الاخير على حالة default وهي تعني الافتراضي
    يعني لو لم تتحقق القيم لــ i$ ولم تكن 1 أو 2 أو 3 فانها سوف تذهب الى القيمة الافتراضية وتنفذ الامر الموجود في default

    ————————————-

    بخصوص الأخ/الأخت اللي سأل عن foreach هنا التوضيح

    <?
    $i = array(“one”,”two”,”three”);
    foreach ($i as $value)
    {
    echo $value . “”;
    }
    ?>

    —–

    i$ عبارة عن مصفوفة تتكون من ثلاث قيم ، والحلقة foreach تقوم باخذ قيم المصفوفة واحد ورى الثاني حسب الترتيب وتسنده للقيمة value$ وتطبق عليه الاوامر بداخل الحلقة ، يعني في البداية بتاخذ قيمة المصفوفة الاولى اللي هي one وتسندها للمتغير value$ ويصبح

    value$ = one

    بعدين تدخل في الحلقة وتبدأ في تنفيذ الأوامر بداخلها مثل امر الطباعة اللي كتب echo $value . “”;

    بعدين ترجع وتاخذ القيمة الثانية للمصفوفة وتسندها لنفس المتغير وتنزل وتطبق عليه الاوامر وهكذا حتى تنتهي من عناصر المصفوفة 000000 (:

    • م.عبدالله

      الله يجزاك خير على التوضيح

      ولكن كيف تتم القراءة إذا كانت المصفوفه أكبر مثلا مكونه من ثلاث اعمده وثلاث صفوف؟؟؟؟

      بارك الله فيك

  • شكراً للجميع وألف شكر لك أخوي عبدالله على متابعتك وعلى مساعدتك الرائعة والتي اسعدني كثيراً بإضافتك الرائعة وهذا فعلاً ما اتمناه, بارك الله فيك ونفع بك

    وإذا كان هناك اي سؤال آخر نحن لها مثل ما يقولون مع الزميل عبدالله واي شخص فيشرفنا انضمامكم

    اطيب تحياتي

  • Tranim

    جزاك الله خير
    ممتنين لك

  • الله يجزاك كل الخير يا عبدالملك الثاري

    ومن يد ما نعدمها يارب

    تحيتي لك

  • Bassma

    السلام عليكم
    الله يعطيك العافيه
    الدروس جدا واضحه
    وإلى الأن بسيطه ومافي اي مشاكل
    جزاك الله خير

  • ملاك

    الله يجزاك خير …لحد الآآن تمام وبسيط
    لكن ممكن ..سؤال أعرف انو بدري لكن اعذرني على الفضول
    مثل ما الكل عارف انو صفحات النت مليانة أشكال رسومية وأزرار,,الخ
    طيب لحد هاللحظة ,,كيف ممكن أستخدم هالاشياءء بال php

    • اخى الغالى لغة php تستخدم فى البرمجه وليس فى شكل ظهور الصور والنصوص فهذا يعود الى لغة HTML و CSS ولكن من الممكن استخدام PHP فى بعض استخدامات اخرى كالكتابة على الصور اثناء رفعها على السرفر وايضا تصغير الصور وغيرها من الخيارات التى توفرها PHP

  • محمود الخطيب

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

    دورة جميلة جدا ,,,

    وربنا يوفقك وتعملنا دروس أكتر من كدا 🙂

  • سآمي

    الف شكر لك اخوي
    صدق استفدنا من دروسك
    ننتظر الدروس الآتية

  • ناصر الهاجري

    هالدرس يبي له مخمخه

    بس بعض الاوامر ماتعمقت فيها اهوي عبدالملك

    لان بصرحه هذي الاوامر جاتني بمادة لغات حاسب وكانت حايستني وكرهتها كره ماتتصوره

    المهم ياليت يالغالي تتعمق شوي وتشرح لنا كل امر ونتيجة الامر والخطوات الي يمر فيها

    تحياتي لك

  • لدي سؤال

    بالنسبة لحلقة foreach
    اذا كنت ابغى عدد محدد من المصفوفة يعني ابغى أول 10
    او بطريقة اخرى ابغى احدد عدد الدورات وليس الى النهاية

  • Lebron James

    شكرا لك أخي العزيز عبد الملك

    ولكن متى سوف يتم وضع بقية الدروس ؟؟

  • so

    بانتظار بقية الدروس

  • بانتظار البقية

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

  • NOAF

    انا اصم موقع وعندي شغلتين حابه اعرف كيف اسويها
    الاولى كيف اسوي مستطيل كبير يحمل معلومات الصفحة ؟؟هل هي عن طريق جدول او عن طريق CSS
    والثانية كيف ابين مراحل عملية شراء لسلع

    صورة توضيحية على سؤالي

    http://www.alhnuf.com/up/pics-gif/upload/view_h.php?file=c3f6bc82c7

تعليقات عبر الفيسبوك