If Statement

جملة if في PHP

جملة if هي أهم جملة شرطية في PHP، وظيفتها تنفيذ كود فقط إذا تحقق شرط معين.

يعني ببساطة:

“إذا كان الشرط صحيحًا نفّذ هذا الكود”

الشكل الأساسي لـ if
if (شرط) {
    // كود يتم تنفيذه إذا كان الشرط صحيح
}
Dart
كيف تعمل؟

PHP تقوم بتقييم الشرط:

  • إذا كانت النتيجة true → ينفذ الكود
  • إذا كانت false → يتجاهل الكود
أول مثال بسيط
<?php

$age = 20;

if ($age >= 18) {
   echo "أنت بالغ";
}
?>
Dart
ماذا حدث هنا؟

الشرط:

$age >= 18
Dart

يعني:

هل العمر أكبر أو يساوي 18 ؟

القيمة:

20 >= 18
Dart

النتيجة:

true
Dart

لذلك تم تنفيذ:

echo "أنت بالغ";
Dart
مثال عندما يكون الشرط خطأ
<?php
$age = 15;
if ($age >= 18) {
   echo "أنت بالغ";
}
?>
Dart

الشرط أصبح:

15 >= 18
Dart

النتيجة:

false
Dart

لذلك لن يظهر أي شيء.

الأقواس في if

يوجد نوعان من الأقواس:

1- أقواس الشرط ()
if (شرط)
Dart

هذه إلزامية دائمًا.

2- الأقواس المعقوفة {}
{
  الكود
}
Dart

تحدد بداية ونهاية الكود الذي سيتم تنفيذه.

ماذا يحدث داخل الشرط؟

أي شيء يعيد true أو false يمكن وضعه داخل if.

مثل:

  • مقارنة
  • متغير منطقي
  • دالة
  • عملية حسابية
  • فحص نص
  • فحص قيمة
أمثلة على المقارنات داخل if
يساوي
<?php

$number = 10;

if ($number == 10) {
echo "الرقم يساوي 10";
}

?>
أكبر من
<?php

$price = 200;

if ($price > 100) {
echo "السعر مرتفع";
}

?>
أصغر من
<?php

$temperature = 15;

if ($temperature < 20) {
echo "الجو بارد";
}

?>

لا يساوي
<?php

$name = "Ahmed";

if ($name != "Ali") {
echo "الاسم ليس علي";
}

?>

استخدام المتغيرات المنطقية Boolean
<?php

$isLoggedIn = true;

if ($isLoggedIn) {
echo "مرحباً بك";
}

?>

هنا المتغير نفسه يحمل:

true

فتم تنفيذ الكود.


عندما تكون القيمة false
<?php

$isLoggedIn = false;

if ($isLoggedIn) {
echo "مرحباً بك";
}

?>

لن يظهر شيء.


القيم التي تعتبر false في PHP

PHP تعتبر بعض القيم وكأنها false.

مثل:

false
0
0.0
""
"0"
null
[]

مثال
<?php

$name = "";

if ($name) {
echo "يوجد اسم";
}

?>

لن يتم التنفيذ لأن النص فارغ.

مثال على نص غير فارغ
<?php

$name = "Yasin";

if ($name) {
echo "يوجد اسم";
}

?>

النص غير فارغ → يعتبر true.


تنفيذ أكثر من سطر داخل if
<?php

$age = 25;

if ($age >= 18) {

echo "أنت بالغ";
echo "<br>";
echo "يمكنك التسجيل";

}

?>

كل ما داخل {} ينفذ.


حذف الأقواس المعقوفة

إذا كان لديك سطر واحد فقط يمكنك كتابة:

<?php

$age = 20;

if ($age >= 18)
echo "أنت بالغ";

?>

لكن الأفضل دائمًا استخدام {} لتجنب الأخطاء.


خطأ شائع جدًا
<?php

$age = 20;

if ($age >= 18);
{
echo "أنت بالغ";
}

?>

لاحظ هذه:

;

بعد if

هذه كارثة شائعة.

PHP تعتبر أن جملة if انتهت هنا.

لذلك الكود داخل {} سيعمل دائمًا.


مثال عملي لفهم الخطأ
<?php

$age = 10;

if ($age >= 18);
{
echo "تم التنفيذ";
}

?>

رغم أن العمر 10 سيظهر النص.

لأن الفاصلة المنقوطة أنهت الشرط.


التداخل داخل if

يمكن وضع if داخل if.

<?php

$age = 25;
$isStudent = true;

if ($age >= 18) {

if ($isStudent) {
echo "طالب بالغ";
}

}

?>

if مع العمليات الحسابية
<?php

$number = 5;

if ($number * 2 == 10) {
echo "صحيح";
}

?>

if مع النصوص
<?php

$country = "Turkey";

if ($country == "Turkey") {
echo "أهلاً بك";
}

?>

الفرق بين = و ==

هذا خطأ شائع جدًا

if ($age = 18)

هذا ليس مقارنة.

هذا إسناد قيمة.


الصحيح
if ($age == 18)

شرح الفرق

الإسناد

=

يعني:

ضع قيمة داخل متغير

مثال:

$age = 18;

المقارنة
==

تعني:

هل القيمتان متساويتان؟


مثال خطير
<?php

$age = 10;

if ($age = 18) {
echo "تم التنفيذ";
}

?>

ما الذي حدث؟

تم تغيير $age إلى 18.

ثم أصبحت القيمة:

18

وهي تعتبر true.

لذلك ينفذ الشرط دائمًا.


المقارنة الصارمة

PHP توفر مقارنة أدق:

===

هذه تقارن:

  • القيمة
  • النوع أيضًا

مثال

<?php

$x = 5;

if ($x === 5) {
echo "متطابق";
}

?>

مثال على اختلاف النوع
<?php

$x = "5";

if ($x == 5) {
echo "مقارنة عادية";
}

?>

ستعمل.

لكن:

<?php

$x = "5";

if ($x === 5) {
echo "متطابق";
}

?>

لن تعمل.

لأن:

"5" => string
5 => integer

استخدام الدوال داخل if
<?php

$name = "Yasin";

if (strlen($name) > 3) {
echo "الاسم طويل";
}

?>

الدالة:

strlen()

تعيد طول النص.


if مع الإدخال من المستخدم
<?php

$username = $_POST['username'];

if ($username == "admin") {
echo "مرحباً أيها المدير";
}

?>

الطريقة البديلة لـ if

تستخدم كثيرًا داخل HTML.

<?php if ($age >= 18): ?>

<h1>أنت بالغ</h1>

<?php endif; ?>

لماذا هذه الطريقة مهمة؟

عند دمج PHP مع HTML تصبح القراءة أسهل.


مثال عملي كامل
<?php

$balance = 1500;

if ($balance >= 1000) {

echo "الرصيد كافي";
echo "<br>";
echo "يمكنك شراء المنتج";

}

?>

مثال تسجيل دخول
<?php

$username = "admin";
$password = "1234";

if ($username == "admin" && $password == "1234") {

echo "تم تسجيل الدخول";

}

?>

مثال على التحقق من ملف
<?php

$file = "photo.jpg";

if (file_exists($file)) {
echo "الملف موجود";
}

?>

مثال على الأرقام الزوجية
<?php

$number = 8;

if ($number % 2 == 0) {
    echo "رقم زوجي";
}

?>

مثال على الوقت
<?php

$hour = 10;

if ($hour < 12) {
echo "صباح الخير";
}

?>

أهم الأخطاء الشائعة
1- نسيان الأقواس

خطأ:

if $age > 18

صحيح:

if ($age > 18)

2- وضع ;

خطأ:

if ($age > 18);

3- استخدام = بدل ==

خطأ:

if ($x = 5)

صحيح:

if ($x == 5)

ملخص كامل

if تعني:

نفذ الكود إذا تحقق الشرط


الصيغة الأساسية
if (شرط) {
كود
}

الشرط يجب أن يعيد:
  • true
    أو
  • false

أشهر المقارنات
العمليةالمعنى
==يساوي
===مطابق
!=لا يساوي
>أكبر
<أصغر
>=أكبر أو يساوي
<=أصغر أو يساوي

أهم نصيحة

استخدم دائمًا:

{}

حتى لو كان لديك سطر واحد فقط.

في لغة PHP، يُقصد بـ “Control Flow” أو “تدفق التحكم” مجموعة التعليمات التي تتحكم في ترتيب تنفيذ الكود بناءً على شروط معينة أو حلقات تكرار.
سنتناولها بشكل تفصيلي حسب الأنواع التالية:

✅ 1. التحكم بالشروط (Conditional Statements)
✳️ if Statement
$age = 20;

if ($age >= 18) {
    echo "أنت بالغ.";
}
PHP

شرح: يتم تنفيذ الكود داخل if فقط إذا تحقق الشرط $age >= 18.

✳️ if…else Statement
$age = 16;

if ($age >= 18) {
    echo "أنت بالغ.";
} else {
    echo "أنت قاصر.";
}
PHP

شرح: إذا لم يتحقق شرط if يتم تنفيذ الكود داخل else.

✳️ if…elseif…else Statement
$mark = 75;

if ($mark >= 90) {
    echo "ممتاز";
} elseif ($mark >= 75) {
    echo "جيد جداً";
} elseif ($mark >= 60) {
    echo "جيد";
} else {
    echo "راسب";
}
PHP

شرح: يتم فحص الشروط بالترتيب، وينفذ أول شرط يتحقق فقط.

✳️ Ternary Operator (الشرط المختصر)
$age = 20;
echo ($age >= 18) ? "بالغ" : "قاصر";
PHP

شرح: بديل مختصر لـ if...else.

✳️ null coalescing operator (??)

$username = $_GET['user'] ?? 'ضيف';
echo $username;
PHP

شرح: إذا كانت القيمة الأولى غير معرفة أو null يتم استخدام القيمة بعد ??.

✳️ match (PHP 8+)
$grade = 'B';

$result = match($grade) {
    'A' => 'ممتاز',
    'B' => 'جيد جداً',
    'C' => 'جيد',
    default => 'غير معروف',
};

echo $result;
PHP

شرح: بديل أكثر ترتيبًا لـ switch.

✅ 2. التكرار (Loops)
🔁 while loop
$i = 1;

while ($i <= 5) {
    echo "العدد: $i<br>";
    $i++;
}
PHP

شرح: ينفذ الكود طالما الشرط صحيح.

🔁 do…while loop
$i = 1;

do {
    echo "العدد: $i<br>";
    $i++;
} while ($i <= 5);
PHP

شرح: ينفذ الكود مرة واحدة على الأقل، ثم يتحقق من الشرط.

🔁 for loop
for ($i = 1; $i <= 5; $i++) {
    echo "العدد: $i<br>";
}
PHP

شرح: الأكثر استخدامًا مع عدادات، تنفذ الكود بعد تحديد البداية والنهاية والزيادة.

🔁 foreach loop (للمصفوفات)
$names = ["أحمد", "فاطمة", "سعيد"];

foreach ($names as $name) {
    echo "الاسم: $name<br>";
}
PHP

شرح: تُستخدم مع المصفوفات والـ collections، وتتكرر تلقائيًا على كل عنصر.

✅ 3. عبارات التحكم داخل الحلقات
🔸 break
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) break;
    echo "العدد: $i<br>";
}
PHP

شرح: يوقف الحلقة بالكامل عند تحقق الشرط.

🔸 continue
for ($i = 1; $i <= 5; $i++) {
    if ($i == 3) continue;
    echo "العدد: $i<br>";
}
PHP

شرح: يتجاوز الدورة الحالية ويكمل الدورة التالية.

✅ 4. switch Statement
$day = "الثلاثاء";

switch ($day) {
    case "الاثنين":
        echo "بداية الأسبوع";
        break;
    case "الثلاثاء":
        echo "اليوم الثاني";
        break;
    default:
        echo "يوم غير معروف";
}
PHP

شرح: تُستخدم عندما تريد مقارنة نفس المتغير مع عدة قيم.

📌 ملخص سريع:
النوعالاستخدام
if, elseللتحكم بالقرارات والشروط
switch, matchللتحكم بحالات متعددة لقيمة واحدة
for, whileلتنفيذ أو تكرار كود
breakللخروج من الحلقة
continueلتخطي دورة واحدة في الحلقة
foreachلتكرار عناصر المصفوفة