الثانوية العامة 2026الاستعلام عن النتيجةاعرف الكليات المناسبة لمجموعكتنسيق 2026

الحاسب الآلي · الصف الثاني الثانوي · الترم الأول

المعاملات والجمل الشرطية في لغة PHP

المعاملات والجمل الشرطية في PHP: المعاملات الحسابية ومعاملات المقارنة والمنطقية، وصور جملة if وelseif والصيغة المختصرة، وجملة switch وصيغها، مع أمثلة وتتبع للنواتج.

آخر تحديث: · كيف نراجع المحتوى

أهداف التعلم

  • أن تميز بين أنواع المعاملات (Operators) في لغة PHP.
  • أن تشرح جملة الشرط if بصورها المختلفة.
  • أن تتعرف جملة switch وصيغها.
  • أن توظف جملتي الشرط if وswitch في حل المشكلات.
  • أن تستقبل بيانات النماذج وتتحقق من صحتها قبل استخدامها.

شرح الدرس

أولًا: المعاملات (Operators)

توجد ثلاثة أنواع من المعاملات في لغة PHP:

1. المعاملات الحسابية:

المعاملالعمليةمثالالناتج
+الجمع2 + 35
-الطرح6 - 42
*الضرب5 * 210
/القسمة8 / 24
%باقي القسمة10 % 31

ومعاملات حسابية أخرى خاصة بلغة PHP:

المعاملمثاليعني
+=$x += 5$x = $x + 5
-=$x -= 5$x = $x - 5
*=$x *= 5$x = $x * 5
/=$x /= 5$x = $x / 5
%=$x %= 5$x = $x % 5
++$x++$x = $x + 1
--$x--$x = $x - 1

2. معاملات المقارنة:

المعاملالمعنى
==يساوي (Equal)
!=لا يساوي (Not Equal)
>أكبر من (Greater Than)
>=أكبر من أو يساوي
<أصغر من (Less Than)
<=أصغر من أو يساوي

3. المعاملات المنطقية (Logical Operators):

المعاملالمعنى
||أو (OR)
&&و (AND)
!ليس (NOT)
XYX || YX && Y
TrueTrueTrueTrue
TrueFalseTrueFalse
FalseTrueTrueFalse
FalseFalseFalseFalse

ثانيًا: جملة الشرط (IF Condition)

تضع شرطًا وتختبره: إذا كان الناتج صحيحًا نُفذ كود معين، وإذا لم يكن صحيحًا نُفذ كود آخر.

الصورة الأولى (if فقط):

<?php
$A = "First";
if ($A == "First") {
    echo "أنت الأول";
}
?>

تُطبع العبارة فقط إذا تحقق الشرط. ولاحظ أن العلامة = في $A = "First"; معامل تخصيص، أما == داخل الشرط فهي معامل مقارنة (Equal).

الصورة الثانية (if … else) وهي الأكثر شيوعًا:

<?php
$A = "Second";
if ($A == "First") {
    echo "أنت الأول";
} else {
    echo "أنت الثاني";
}
?>

الشرط لم يتحقق، فيُنفذ الكود التالي لـ else ويُطبع «أنت الثاني».

الصورة الثالثة (if … elseif … else):

<?php
$X = 5;
if ($X < 0) {
    echo "الرقم سالب";
} elseif ($X > 0) {
    echo "الرقم موجب";
} else {
    echo "الرقم يساوي صفر";
}
?>

لأن $X = 5 لم يتحقق الشرط الأول، وتحقق الشرط الثاني بعد elseif، فتُطبع «الرقم موجب».

الصيغة المختصرة (In Line If): (Expression) ? If-True : If-False;

<?php
$x = 1;
$y = ($x == 1) ? 'One' : 'Two';
print $y;   // One
?>

إذا كانت قيمة $x تساوي 1 يُخزن “One” في $y، وإلا يُخزن “Two”؛ وتختصر هذه الصيغة جملة if ... else في سطر واحد بدلًا من استخدام الأقواس { }.

ثالثًا: جملة Switch

تختبر قيمة متغير واحد مقابل عدة احتمالات، وتنفذ الكود الخاص بالاحتمال المتحقق:

<?php
$x = 1;
switch ($x) {
    case 1:
        echo "واحد";
        break;
    case 2:
        echo "اثنين";
        break;
    case 3:
        echo "ثلاثة";
        break;
    default:
        echo "لا يوجد";
        break;
}
?>
  • إذا كانت قيمة $x تساوي 1 يُطبع «واحد»، وهكذا، وإذا لم تساوِ أي احتمال نُفذ default فيُطبع «لا يوجد».
  • break تُخرج من جملة switch بعد تنفيذ الحالة، حتى لا تُنفذ الحالات التالية.
  • يذكر الكتاب إمكان استخدام الأمر exit; في آخر حالة default للخروج دون تنفيذ شيء؛ لكن انتبه إلى أن exit يوقف تنفيذ كود الصفحة كله، لا جملة switch فقط.

صيغة أخرى: يمكن أن تشترك عدة حالات في كود واحد:

<?php
$a = 2;
switch ($a) {
    case 1:
    case 2:
    case 3:
        echo 'واحد أو اثنين أو ثلاث';
        break;
    default:
        echo 'أرقام أخرى';
}
?>

وهي تكافئ الجملة: if ($a == 1 || $a == 2 || $a == 3) { echo 'واحد أو اثنين أو ثلاث'; } حيث || تعني OR.

للاستزادة (إثراء خارج الكتاب): النماذج والتحقق والبحث الآمن

طريقتا إرسال بيانات النموذج (ستدرسهما بالتفصيل في الفصل الدراسي الثاني):

  • GET: ترسل البيانات ظاهرة في عنوان الصفحة (URL)، ومناسبة للبحث مثل search.php?q=ذاكرة، ولا تُستخدم لكلمات السر.
  • POST: ترسل البيانات مخفية داخل الطلب، ومناسبة للإضافة والنماذج الطويلة والبيانات المهمة.
<?php
$q = $_GET["q"] ?? "";              // قيمة البحث أو نص فارغ
$term = trim($_POST["txt_term"] ?? "");
if ($term == "") {
    echo "يجب إدخال اسم المصطلح";
} elseif (mb_strlen($term) > 50) {
    echo "الاسم أطول من المسموح";
} else {
    echo "تم استلام المصطلح: " . htmlspecialchars($term);
}
?>
  • المعامل ?? يعطي قيمة افتراضية إذا لم يُرسل الحقل.
  • trim تحذف المسافات الزائدة من بداية النص ونهايته، وmb_strlen تحسب طول النص العربي بدقة.
  • htmlspecialchars تمنع تنفيذ أي كود ضار عند عرض النص.

مثال شرط مع عدد المصطلحات:

<?php
$count = 0;
if ($count > 0) {
    echo "يوجد $count مصطلحًا";
} elseif ($count == 0) {
    echo "لا توجد مصطلحات بعد";
} else {
    echo "قيمة غير متوقعة";
}
?>

صفحة بحث آمنة search.php: نستخدم الاستعلام المُعد (prepare) بدل دمج ما يكتبه المستخدم في أمر SQL مباشرة، لحماية قاعدة البيانات من هجمات حقن SQL:

<?php
include("connection.php");
$q = trim($_GET["q"] ?? "");
if ($q == "") {
    echo "<p>اكتب كلمة للبحث.</p>";
} else {
    $stmt = mysqli_prepare($connect, "SELECT term FROM terms WHERE term LIKE ?");
    $like = "%" . $q . "%";
    mysqli_stmt_bind_param($stmt, "s", $like);
    mysqli_stmt_execute($stmt);
    $result = mysqli_stmt_get_result($stmt);
    if (mysqli_num_rows($result) == 0) {
        echo "<p>لا توجد نتائج.</p>";
    } else {
        while ($row = mysqli_fetch_assoc($result)) {
            echo "<p>" . htmlspecialchars($row["term"]) . "</p>";
        }
    }
}
?>

أمثلة وتطبيقات

برنامج تقدير الطالب باستخدام elseif:

<?php
$degree = 78;
if ($degree >= 85) {
    echo "ممتاز";
} elseif ($degree >= 75) {
    echo "جيد جدًا";
} elseif ($degree >= 65) {
    echo "جيد";
} elseif ($degree >= 50) {
    echo "مقبول";
} else {
    echo "راسب";
}
?>

الناتج: «جيد جدًا»، لأن أول شرط يتحقق هو $degree >= 75.

تتبع: ما ناتج الكود $x = 10; $x += 5; $x++; echo $x % 4;؟ الحل: $x يصبح 15 ثم 16، و16 % 4 = 0، فيُطبع 0.

ملاحظات مهمة

  • الفرق بين = (تخصيص) و== (مقارنة) مصدر أخطاء شائع؛ فكتابة if ($a = 5) تخصص القيمة ولا تقارنها.
  • لا تنسَ break في نهاية كل حالة في switch.
  • يوجد أيضًا المعامل === الذي يقارن القيمة والنوع معًا، وهو إثراء خارج الكتاب.

المفاهيم الأساسية

  • المعاملات الحسابية: + - * / % ومعها += -= *= /= %= ++ --.
  • معاملات المقارنة: == != > >= < <=.
  • المعاملات المنطقية: || (أو)، و&& (و)، و! (ليس).
  • صور if: if، وif ... else، وif ... elseif ... else، والصيغة المختصرة ? :.
  • switch: تختبر متغيرًا واحدًا بعدة حالات case وحالة default، مع break للخروج.

ملخص الدرس

في لغة PHP ثلاثة أنواع من المعاملات: حسابية مثل الجمع وباقي القسمة و+= و++، ومقارنة مثل == و!= و>، ومنطقية هي || و&& و!. وجملة if تختبر شرطًا فتنفذ كودًا إذا تحقق، ولها صور: if وحدها، وif ... else، وif ... elseif ... else، وصيغة مختصرة (شرط) ? قيمة1 : قيمة2. أما switch فتختبر قيمة متغير أمام عدة حالات وتنفذ الحالة المتحققة أو default، ويمكن أن تشترك عدة حالات في كود واحد بما يكافئ شرطًا مركبًا بـ ||.

أسئلة للتدريب

  1. اذكر أنواع المعاملات في PHP مع مثالين لكل نوع.
  2. ما قيمة $x بعد تنفيذ: $x = 7; $x *= 2; $x--;؟
  3. أكمل جدول الحقيقة للمعاملين || و&&.
  4. ما الفرق بين = و== في PHP؟
  5. اكتب كودًا يطبع «الرقم زوجي» أو «الرقم فردي» باستخدام if ... else والمعامل %.
  6. أعد كتابة الكود السابق باستخدام الصيغة المختصرة ? :.
  7. اكتب جملة switch تطبع اسم اليوم حسب رقمه من 1 إلى 3، وتطبع «رقم غير صحيح» فيما عدا ذلك.
  8. اكتب جملة if تكافئ جملة switch تتشارك فيها الحالات 1 و2 و3 في كود واحد.
حلّ أسئلة هذا الدرساختبر فهمك بأسئلة اختيار من متعدد وأسئلة مقالية مع نموذج إجابة، أو خض اختبارًا تفاعليًا سريعًا
أبلغ عن خطأ في هذا الدرس