عملگرها و شرط در PHP
محصول اورجینال INZIP
دانلود پوسته وردپرس باریستا؛ قالب کافیشاپ، رُستری قهوه و فروشگاه قهوه دوزبانه با منوی رومیزی، رزرو آنلاین میز با کد پیامکی و ووکامرس. طراحی اختصاصی inzip.ir
تحویل آنی
آپدیت رایگان
بدون قفل لایسنس
پشتیبانی واقعی
٪۲۶
تخفیف ویژه
۱,۰۳۰,۰۰۰ تومان
عملگرها و عبارات شرطی در PHP
عملگرها (Operators) و عبارات شرطی (Conditionals) ابزارهای بنیادی برای کنترل جریان برنامه و انجام محاسبات هستند. در این مقاله به بررسی جامع تمام عملگرها و ساختارهای شرطی PHP میپردازیم.
عملگرهای حسابی (Arithmetic)
عملگرهای حسابی
+ جمع
- تفریق
* ضرب
/ تقسیم
% باقیمانده
** توان
<?php
$a = 10;
$b = 3;
echo $a + $b; // 13
echo $a - $b; // 7
echo $a * $b; // 30
echo $a / $b; // 3.333...
echo $a % $b; // 1
echo $a ** $b; // 1000 (توان)
?>
عملگرهای انتساب (Assignment)
<?php
$x = 10;
$x += 5; // x = 15
$x -= 3; // x = 12
$x *= 2; // x = 24
$x /= 4; // x = 6
$x %= 4; // x = 2
$x **= 3; // x = 8
?>
عملگرهای مقایسهای (Comparison)
<?php
$a = 5;
$b = "5";
$a == $b; // true (فقط مقدار)
$a === $b; // false (نوع و مقدار)
$a != $b; // false
$a !== $b; // true
$a <> $b; // false (معادل !=)
10 > 5; // true
10 < 5; // false
5 >= 5; // true
5 <= 4; // false
// Spaceship operator (PHP 7+)
1 <=> 2; // -1 (چپ کوچکتر)
2 <=> 2; // 0 (مساوی)
3 <=> 2; // 1 (چپ بزرگتر)
?>
عملگرهای منطقی (Logical)
<?php
$age = 25;
$hasLicense = true;
// AND منطقی
if ($age >= 18 && $hasLicense) {
echo "مجاز به رانندگی";
}
// OR منطقی
if ($age < 18 || !$hasLicense) {
echo "غیرمجاز";
}
// NOT منطقی
if (!($age >= 18)) {
echo "سن کم است";
}
?>
عملگرهای بیتی (Bitwise)
<?php
$a = 12; // 1100
$b = 5; // 0101
$a & $b; // AND = 4 (0100)
$a | $b; // OR = 13 (1101)
$a ^ $b; // XOR = 9 (1001)
~$a; // NOT = -13
$a << 1; // 24 (شیفت چپ)
$a >> 1; // 6 (شیفت راست)
?>
عملگر رشتهای
<?php
$first = "سلام";
$last = "دنیا";
$greeting = $first . " " . $last; // "سلام دنیا"
$greeting .= "!"; // "سلام دنیا!"
?>
عملگر Null Coalescing (PHP 7+)
<?php
// $username = $_GET['user'] ?? 'مهمان';
// اگر user موجود نباشد، 'مهمان' استفاده میشود
$config = ['timeout' => 30];
$timeout = $config['timeout'] ?? 60; // 30
// Null coalescing assignment (PHP 7.4+)
$data['name'] ??= 'پیشفرض';
?>
ساختار شرطی if
<?php
$score = 85;
if ($score >= 90) {
echo "عالی";
} elseif ($score >= 75) {
echo "خوب";
} elseif ($score >= 50) {
echo "قبول";
} else {
echo "مردود";
}
?>
ساختار switch
برای مقایسه یک متغیر با چندین مقدار مختلف:
<?php
$day = "شنبه";
switch ($day) {
case "شنبه":
case "یکشنبه":
echo "آخر هفته";
break;
case "دوشنبه":
echo "شروع هفته کاری";
break;
default:
echo "روز عادی";
}
?>
عملگر سهتایی (Ternary)
<?php
$age = 20;
$status = ($age >= 18) ? "بزرگسال" : "خردسال";
// معادل if else کوتاه
echo $isLoggedIn ? "خوش آمدید" : "لطفاً وارد شوید";
// Null coalescing در ternary
$name = $_POST['name'] ?? 'ناشناس';
?>
عملگر Null Safe (PHP 8+)
<?php
$user = getUser(); // ممکن است null باشد
// بدون خطا حتی اگر user null باشد
$city = $user?->address?->city ?? 'نامشخص';
// قبل از PHP 8
$city = isset($user->address) ? $user->address->city : null;
?>
Match Expression (PHP 8+)
جایگزین مدرنتر برای switch:
<?php
$status = 200;
$message = match (true) {
$status >= 200 && $status < 300 => 'موفق',
$status >= 400 && $status < 500 => 'خطای کاربر',
$status >= 500 => 'خطای سرور',
default => 'نامشخص'
};
?>
عملگر Spread در آرایهها
<?php
$parts = ['یک', 'دو', 'سه'];
$more = [...$parts, 'چهار', 'پنج'];
// ['یک', 'دو', 'سه', 'چهار', 'پنج']
?>
نکات کلیدی
همیشه از === به جای == استفاده کنید
عملگر Null Coalescing برای مقادیر پیشفرض عالی است
Match سریعتر و امنتر از Switch است
از شرطهای تو در تو عمیق پرهیز کنید (حداکثر ۲ سطح)
نتیجهگیری
درک عملگرها و شرطیها، پایهایترین مهارت در برنامهنویسی PHP است. با استفاده از ویژگیهای مدرن PHP 8 مانند Match و Null Safe، میتوانید کد خواناتر و ایمنتری بنویسید.
٪۴۱
دوره اختصاصی INZIP
آموزش حرفه ای HTML از صفر در ۱۶ ویدیو: سند، متن، لینک، تصویر، جدول، فرم، معناییسازی، دسترسپذیری و سئو، تا پروژهٔ کامل صفحهٔ فروشگاه محصول.
تماشای آنلاین + دانلود
دسترسی آنی و همیشگی
بهروزرسانی رایگان
کیفیت Full HD
۹۹۰,۰۰۰ تومان
۵۹۰,۰۰۰ تومان
سود شما ۴۰۰,۰۰۰ تومان
مشاهده سریال