Kodokon kodokon.com

الشروط والحلقات

اجعل سكربتاتك تتفاعل باستخدام if و match، ثم كرِّر الإجراءات باستخدام for و foreach و while.

9 دقيقة · 3 أسئلة

افتح هذا الدرس في Kodokon

يتيح الشرط للسكربت أن يختار مسارًا: “إن كان هذا محقّقًا، فافعل ذلك، وإلا فافعل شيئًا آخر”. وتختبر الكلمة المفتاحية if تعبيرًا تكون نتيجته true أو false، باستخدام مُعامِلات المقارنة: > (أكبر من)، و< (أصغر من)، و>=، و<=، و=== (يساوي، القيمة نفسها والنوع نفسه) و!== (مختلف). وتضيف elseif اختبارًا آخر إذا فشل الاختبار السابق، وتُنفَّذ else عندما لا ينجح أيّ اختبار. وتُقرأ الاختبارات من الأعلى إلى الأسفل: فالأول الذي يكون محقّقًا يفوز.

PHP
<?php

$temperature = 12;

if ($temperature > 25) {
    echo "It's hot.";
} elseif ($temperature > 15) {
    echo "It's mild.";
} else {
    echo "Grab a jacket!";
}
هنا، تُنفَّذ كتلة else فقط.

عندما تقارن المتغير نفسه بعدة قيم محددة، يكون تعبير match أكثر أناقة. فهو يقارن المتغير بكل حالة (مقارنة صارمة، للقيمة والنوع) ويُرجِع قيمة مباشرةً، يمكنك تخزينها في متغير. وتعمل الحالة default كشبكة أمان عندما لا تتطابق أيّ قيمة.

PHP
<?php

$day = "saturday";

$message = match ($day) {
    "saturday", "sunday" => "It's the weekend!",
    "monday" => "Hang in there, back to work.",
    default => "Have a good weekday.",
};

echo $message;
يُرجِع match قيمة، مُخزَّنة هنا في $message.

تُكرِّر الحلقة كتلة من التعليمات عدة مرات، دون نسخ الكود ولصقه. وتكون حلقة for مثالية عندما تعرف عدد الجولات مسبقًا. وتُقرأ في ثلاثة أجزاء، مفصولة بفواصل منقوطة: البداية ($i = 1)، وشرط الاستمرار ($i <= 5، وتستمر ما دام هذا محقّقًا) والخطوة ($i++، التي تضيف 1 إلى $i في كل جولة).

PHP
<?php

for ($i = 1; $i <= 5; $i++) {
    echo "Round number {$i}<br>";
}
خمس جولات، من 1 إلى 5 ضمنًا.

تُكمِل حلقتان أخريان مجموعة الأدوات. تمرّ foreach عبر مصفوفة (وهي قائمة من القيم، سنتناولها في الدرس التالي) وتسلّمك كل عنصر واحدًا تلو الآخر. وتُكرِّر while كتلتها ما دام شرطها محقّقًا: ويعود إليك تغيير الوضع داخل الحلقة حتى تتوقف في نهاية المطاف.

PHP
<?php

$fruits = ["apple", "pear", "kiwi"];

foreach ($fruits as $fruit) {
    echo "Fruit: {$fruit}<br>";
}

$countdown = 3;

while ($countdown > 0) {
    echo "{$countdown}...<br>";
    $countdown--;
}

echo "Go!";
foreach تمرّ عبر قائمة، وwhile تعدّ تنازليًا.

اختبار المعرفة

تأكّد من أنك تذكّرت النقاط الأساسية في هذا الدرس.

  1. متى تُنفَّذ كتلة else؟
    • دائمًا، مباشرة بعد كتلة if
    • فقط إذا لم يكن أيّ شرط سابق محقّقًا
    • فقط إذا كان شرط if محقّقًا
  2. ما الشيء الذي يميّز match عن if؟
    • أنه يُرجِع قيمة مباشرةً
    • أنه لا يمكنه مقارنة إلا الأعداد
    • أنه يُنفِّذ كل حالة واحدة تلو الأخرى
  3. ماذا يحدث إذا بقي شرط while محقّقًا إلى الأبد؟
    • تتوقف الحلقة تلقائيًا بعد 100 جولة
    • تتجاهل PHP الحلقة وتمضي قدمًا
    • تُنفَّذ الحلقة بلا نهاية وتُجمِّد السكربت