جملة if في PHP
جملة if هي أهم جملة شرطية في PHP، وظيفتها تنفيذ كود فقط إذا تحقق شرط معين.
يعني ببساطة:
“إذا كان الشرط صحيحًا نفّذ هذا الكود”
الشكل الأساسي لـ if
if (شرط) {
// كود يتم تنفيذه إذا كان الشرط صحيح
}Dartكيف تعمل؟
PHP تقوم بتقييم الشرط:
- إذا كانت النتيجة
true→ ينفذ الكود - إذا كانت
false→ يتجاهل الكود
أول مثال بسيط
<?php
$age = 20;
if ($age >= 18) {
echo "أنت بالغ";
}
?>Dartماذا حدث هنا؟
الشرط:
$age >= 18Dartيعني:
هل العمر أكبر أو يساوي 18 ؟
القيمة:
20 >= 18Dartالنتيجة:
trueDartلذلك تم تنفيذ:
echo "أنت بالغ";Dartمثال عندما يكون الشرط خطأ
<?php
$age = 15;
if ($age >= 18) {
echo "أنت بالغ";
}
?>Dartالشرط أصبح:
15 >= 18Dartالنتيجة:
falseDartلذلك لن يظهر أي شيء.
الأقواس في 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 | لتكرار عناصر المصفوفة |