📘 الدرس 5: العمليات الحسابية والمنطقية في PHP بشكل موسع
![]() |
العمليات Operators هي الأدوات اللي تخلي PHP تشتغل. بدونها ما تقدر تحسب سعر المنتج، تقارن كلمة المرور، أو تقر إيش تعرض للمستخدم. في هذا الدرس بنغطي كل الأنواع مع أمثلة عملية.
🔹 1. العمليات الحسابية Arithmetic Operators
تستخدم لإجراء العمليات الرياضية على الأرقام. كل موقع تجارة إلكترونية يعتمد عليها 100%.
| العملية | الرمز | الوصف | مثال |
|---|---|---|---|
| الجمع | + | جمع رقمين | 10 + 5 = 15 |
| الطرح | - | طرح رقم من رقم | 10 - 5 = 5 |
| الضرب | * | ضرب رقمين | 10 * 5 = 50 |
| القسمة | / | قسمة رقم على رقم | 10 / 5 = 2 |
| باقي القسمة | % | الباقي بعد القسمة | 10 % 3 = 1 |
| الأس | ** | رفع الرقم للأس | 2 ** 3 = 8 |
مثال عملي: حساب فاتورة
<?php
$price = 100;
$qty = 3;
$discount = 10;
$subtotal = $price * $qty; // 300
$total = $subtotal - $discount; // 290
$tax = $total * 0.15; // 43.5
$final = $total + $tax; // 333.5
echo "الإجمالي النهائي: $final ريال";
?>
$price = 100;
$qty = 3;
$discount = 10;
$subtotal = $price * $qty; // 300
$total = $subtotal - $discount; // 290
$tax = $total * 0.15; // 43.5
$final = $total + $tax; // 333.5
echo "الإجمالي النهائي: $final ريال";
?>
مثال عملي: التحقق إذا الرقم زوجي أو فردي
<?php
$num = 7;
if($num % 2 == 0){
echo "الرقم زوجي";
}else{
echo "الرقم فردي";
}
?>
$num = 7;
if($num % 2 == 0){
echo "الرقم زوجي";
}else{
echo "الرقم فردي";
}
?>
🔹 2. العمليات المقارنة Comparison Operators
تستخدم لمقارنة قيمتين وترجع true أو false. أساس الجمل الشرطية.
| العملية | الرمز | الوصف | مثال |
|---|---|---|---|
| يساوي | == | يقارن القيمة فقط | 5 == "5" // true |
| يساوي تماماً | === | يقارن القيمة والنوع | 5 === "5" // false |
| لا يساوي | != أو <> | مختلف بالقيمة | 5 != 3 // true |
| لا يساوي تماماً | !== | مختلف بالقيمة أو النوع | 5 !== "5" // true |
| أكبر من | > | أكبر من | 10 > 5 // true |
| أصغر من | < | أصغر من | 5 < 10 // true |
| أكبر أو يساوي | >= | أكبر أو يساوي | 5 >= 5 // true |
| أصغر أو يساوي | <= | أصغر أو يساوي | 5 <= 10 // true |
| Spaceship | <=> | مقارنة ثلاثية PHP 7+ | 5 <=> 10 // -1 |
مثال عملي: التحقق من كلمة المرور
<?php
$password = "123456";
$confirm = "123456";
if($password === $confirm){
echo "كلمة المرور متطابقة";
}else{
echo "كلمة المرور غير متطابقة";
}
?>
$password = "123456";
$confirm = "123456";
if($password === $confirm){
echo "كلمة المرور متطابقة";
}else{
echo "كلمة المرور غير متطابقة";
}
?>
⚡ نصيحة مهمة: استخدم
=== بدل == دائماً عشان تتجنب المشاكل.
0 == "0" // true لكن 0 === "0" // false
🔹 3. العمليات المنطقية Logical Operators
تستخدم لربط أكثر من شرط مع بعض. أساس التحقق والصلاحيات.
| العملية | الرمز | الوصف |
|---|---|---|
| AND | && أو and | صحيح فقط إذا كل الشروط صحيحة |
| OR | || أو or | صحيح إذا شرط واحد على الأقل صحيح |
| XOR | xor | صحيح إذا شرط واحد فقط صحيح |
| NOT | ! | يعكس النتيجة |
مثال عملي: التحقق من الأهلية
<?php
$age = 25;
$isStudent = true;
$hasId = true;
// AND - لازم كل الشروط صحيحة
if($age >= 18 && $hasId){
echo "مسموح لك بالدخول";
}
// OR - يكفي شرط واحد
if($age < 18 || $isStudent){
echo "لك خصم 50%";
}
// NOT - عكس الشرط
if(!$isStudent){
echo "أنت لست طالب";
}
?>
$age = 25;
$isStudent = true;
$hasId = true;
// AND - لازم كل الشروط صحيحة
if($age >= 18 && $hasId){
echo "مسموح لك بالدخول";
}
// OR - يكفي شرط واحد
if($age < 18 || $isStudent){
echo "لك خصم 50%";
}
// NOT - عكس الشرط
if(!$isStudent){
echo "أنت لست طالب";
}
?>
مثال عملي: نظام تسجيل الدخول
<?php
$username = "admin";
$password = "123456";
$isActive = true;
if($username == "admin" && $password == "123456" && $isActive){
echo "تم تسجيل الدخول بنجاح";
}else{
echo "بيانات الدخول خاطئة";
}
?>
$username = "admin";
$password = "123456";
$isActive = true;
if($username == "admin" && $password == "123456" && $isActive){
echo "تم تسجيل الدخول بنجاح";
}else{
echo "بيانات الدخول خاطئة";
}
?>
🔹 4. العمليات التعويضية Assignment Operators
تختصر الكود وتحدث قيمة المتغير بنفس الوقت.
| العملية | الرمز | المعنى | مثال |
|---|---|---|---|
| التعيين | = | x = 5 | 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 %= 5 |
| دمج نص وتعيين | .= | x = x . "نص" | x .= "نص" |
مثال عملي: سلة التسوق
<?php
$total = 0;
// إضافة منتجات للسلة
$total += 100; // أضف 100 ريال
$total += 50; // أضف 50 ريال
$total -= 20; // خصم 20 ريال
$total *= 1.15; // أضف ضريبة 15%
echo "إجمالي السلة: ". round($total, 2). " ريال";
?>
$total = 0;
// إضافة منتجات للسلة
$total += 100; // أضف 100 ريال
$total += 50; // أضف 50 ريال
$total -= 20; // خصم 20 ريال
$total *= 1.15; // أضف ضريبة 15%
echo "إجمالي السلة: ". round($total, 2). " ريال";
?>
مثال عملي: بناء نص تدريجياً
<?php
$message = "مرحباً";
$message .= " يا حسام";
$message .= "! كيف حالك؟";
echo $message; // مرحباً يا حسام! كيف حالك؟
?>
$message = "مرحباً";
$message .= " يا حسام";
$message .= "! كيف حالك؟";
echo $message; // مرحباً يا حسام! كيف حالك؟
?>
🔹 5. العمليات الزيادة والنقصان Increment/Decrement
تستخدم لزيادة أو إنقاص الرقم بمقدار 1 بسرعة.
| العملية | الرمز | الوصف |
|---|---|---|
| زيادة قبلية | ++$x | يزيد ثم يرجع القيمة |
| زيادة بعدية | $x++ | يرجع القيمة ثم يزيد |
| نقصان قبلي | --$x | ينقص ثم يرجع القيمة |
| نقصان بعدي | $x-- | يرجع القيمة ثم ينقص |
مثال عملي:
<?php
$x = 5;
echo ++$x; // 6 - زاد ثم طبع
$y = 5;
echo $y++; // 5 - طبع ثم زاد
echo $y; // 6 - الآن صار 6
?>
$x = 5;
echo ++$x; // 6 - زاد ثم طبع
$y = 5;
echo $y++; // 5 - طبع ثم زاد
echo $y; // 6 - الآن صار 6
?>
🔹 6. ترتيب أولوية العمليات Operator Precedence
PHP تنفذ العمليات بترتيب معين. الأقواس () لها الأولوية العليا.
<?php
$result = 10 + 5 * 2; // 20 وليس 30
$result = (10 + 5) * 2; // 30
$result = 10 / 2 * 5; // 25
$result = 10 / (2 * 5); // 1
?>
$result = 10 + 5 * 2; // 20 وليس 30
$result = (10 + 5) * 2; // 30
$result = 10 / 2 * 5; // 25
$result = 10 / (2 * 5); // 1
?>
⚡ قاعدة ذهبية: لما تشك في الأولوية، استخدم الأقواس. الكود الواضح أفضل من الكود الذكي المعقد.
🔹 7. مثال عملي شامل: آلة حاسبة بسيطة
<?php
$num1 = 20;
$num2 = 5;
$operation = "+";
switch($operation){
case "+":
$result = $num1 + $num2;
break;
case "-":
$result = $num1 - $num2;
break;
case "*":
$result = $num1 * $num2;
break;
case "/":
$result = ($num2 != 0) ? $num1 / $num2 : "خطأ: القسمة على صفر";
break;
default:
$result = "عملية غير صحيحة";
}
echo "$num1 $operation $num2 = $result";
?>
$num1 = 20;
$num2 = 5;
$operation = "+";
switch($operation){
case "+":
$result = $num1 + $num2;
break;
case "-":
$result = $num1 - $num2;
break;
case "*":
$result = $num1 * $num2;
break;
case "/":
$result = ($num2 != 0) ? $num1 / $num2 : "خطأ: القسمة على صفر";
break;
default:
$result = "عملية غير صحيحة";
}
echo "$num1 $operation $num2 = $result";
?>
⚠️ تحذير: القسمة على صفر
10 / 0 تطلع Error. دائماً تحقق قبل القسمة: if($num2 != 0)
💡 خلاصة الدرس:
1. استخدم
2. استخدم
3. استخدم
4. استخدم الأقواس
5. تحقق من القسمة على صفر قبل التنفيذ
1. استخدم
=== للمقارنة الدقيقة2. استخدم
&& للشروط المتعددة3. استخدم
+= و -= لاختصار الكود4. استخدم الأقواس
() للتحكم في الأولوية5. تحقق من القسمة على صفر قبل التنفيذ
© جميع الحقوق محفوظة - مدونة الحسام | al-hassam.blogspot.com
