آموزش رایگان PHP

آموزش کامل عملگرهای منطقی در PHP (همراه با تفاوت‌های کلیدی)

1405/04/03 23:56 محراب حسن زاده
آموزش کامل عملگرهای منطقی در PHP (همراه با تفاوت‌های کلیدی)

مقدمه‌ای بر عملگرهای منطقی در PHP

در دنیای برنامه‌نویسی، تصمیم‌گیری‌ها اساس کار قالب کدهای ما را تشکیل می‌دهند. ما از دستورات شرطی مانند if استفاده می‌کنیم تا تعیین کنیم چه زمانی یک قطعه کد خاص باید اجرا شود. اما برای بررسی چند شرط همزمان، نیاز به ابزارهایی داریم که به آن‌ها عملگرهای منطقی (Logical Operators) می‌گوینب. این عملگرها به ما اجازه می‌دهند تا مقادیر بولی (Boolean - درست یا نادرست) را ترکیب یا معکوس کنیم.

معرفی ۴ عملگر منطقی اصلی در PHP

در PHP شش عملگر منطقی وجود دارد که در اصل ۴ کارکرد متفاوت را پیاده‌سازی می‌کنند. جدول زیر این عملگرها را نشان می‌دهد:

  • AND (و): اگر هر دو شرط درست باشند، مقدار نهایی True می‌شود. (عملگرهای && و and)
  • OR (یا): اگر حداقل یکی از شرط‌ها درست باشد، مقدار نهایی True می‌شود. (عملگرهای || و or)
  • XOR (یا انحصاری): اگر فقط و فقط یکی از شرط‌ها درست باشد (و نه هر دو)، مقدار نهایی True می‌شود. (عملگر xor)
  • NOT (نقیض/عکس): مقدار بولی را معکوس می‌کند. (عملگر !)

۱. عملگر AND (و)

این عملگر زمانی مقدار درست (True) برمی‌گرداند که تمامی طرفین شرط درست باشند. در PHP به دو شکل نوشته می‌شود: && و and.


$has_ticket = true;
$has_id_card = true;

// بررسی با استفاده از &&
if ($has_ticket && $has_id_card) {
    echo "شما مجاز به ورود هستید.";
} else {
    echo "امکان ورود وجود ندارد.";
}

۲. عملگر OR (یا)

این عملگر زمانی مقدار درست را برمی‌گرداند که حداقل یکی از طرفین شرط درست باشد. در PHP به دو شکل نوشته می‌شود: || و or.


$is_admin = false;
$is_author = true;

// بررسی با استفاده از ||
if ($is_admin || $is_author) {
    echo "شما به پنل مدیریت دسترسی دارید.";
} else {
    echo "دسترسی غیرمجاز!";
}

۳. عملگر XOR (یا انحصاری)

عملگر xor زمانی مقدار True برمی‌گرداند که فقط یکی از مقادیر درست باشد. اگر هر دو درست یا هر دو نادرست باشند، خروجی False خواهد بود.


$has_premium = true;
$has_coupon = true;

// فقط یکی باید درست باشد تا تخفیف ویژه اعمال شود
if ($has_premium xor $has_coupon) {
    echo "تخفیف ویژه اعمال شد.";
} else {
    echo "شما نمی‌توانید همزمان از هر دو روش یا هیچ‌کدام استفاده کنید!";
}

۴. عملگر NOT (نقیض)

عملگر تک‌عضوی ! مقدار بولی متغیر یا شرط بعد از خود را برعکس می‌کند.


$is_logged_in = false;

if (!$is_logged_in) {
    echo "لطفا ابتدا وارد حساب کاربری خود شوید.";
}

یک تفاوت حیاتی: فرق بین AND و && (اولویت عملگرها)

بسیاری از برنامه‌نویسان تازه کار تصور می‌کنند که && با and و همچنین || با or کاملاً یکسان هستند. اما این یک اشتباه بزرگ است! تفاوت اصلی آن‌ها در اولویت اجرا (Operator Precedence) است.

عملگر && اولویت بسیار بالاتری نسبت به عملگر تخصیص (=) دارد، در حالی که عملگر and اولویت پایین‌تری نسبت به مساوی (=) دارد. به مثال زیر با دقت نگاه کنید:


$a = true;
$b = false;

// حالت اول با &&
$result1 = $a && $b; 
// ابتدا $a && $b ارزیابی می‌شود که خروجی آن false است، سپس به $result1 اختصاص می‌یابد.
// مقدار $result1 برابر با false خواهد بود.

// حالت دوم با and
$result2 = $a and $b;
// ابتدا مقدار $a به $result2 اختصاص داده می‌شود (چون اولویت = از and بیشتر است!)
// مقدار $result2 برابر با true خواهد بود!

بنابراین به عنوان یک استاندارد توسعه، توصیه می‌شود همیشه از && و || برای ارزیابی شرط‌ها استفاده کنید تا از بروز باگ‌های منطقی پنهان جلوگیری نمایید.

نتیجه‌گیری

یادگیری دقیق عملگرهای منطقی به شما کمک می‌کند کدهای خواناتر، هوشمندانه‌تر و بدون خطا بنویسید. همیشه به یاد داشته باشید که اولویت عملگرهای سمبلیک (مانند && و ||) از عملگرهای متنی (مانند and و or) بیشتر است.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش Emit در Vue.js | انتقال رویداد از کامپوننت فرزند به والد
1404/09/28 21:41

آموزش Emit در Vue.js | انتقال رویداد از کامپوننت فرزند به والد

مطالعه بیشتر
آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML
1405/03/13 23:44

آموزش گام به گام طراحی مگا منو (Mega Menu) مدرن با CSS و HTML

مطالعه بیشتر
آموزش دسترسی به المان‌های HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثال‌ها
1403/08/02 20:50

آموزش دسترسی به المان‌های HTML با استفاده از جاوا اسکریپت: راهنمای کامل با مثال‌ها

مطالعه بیشتر
آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد
1404/09/24 20:52

آشنایی با Emit در Vue.js | انتقال رویدادها از کامپوننت فرزند به والد

مطالعه بیشتر
آموزش اصول استاندارد حذف (Delete) اطلاعات از دیتابیس طبق متدهای گوگل
1405/05/13 21:13

آموزش اصول استاندارد حذف (Delete) اطلاعات از دیتابیس طبق متدهای گوگل

مطالعه بیشتر
آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو
1402/05/21 23:48

آموزش کامل ساخت فرم در HTML: از المان‌ها تا نکات سئو

مطالعه بیشتر
آموزش ساخت یک Todo List با استفاده از DOM و جاوا اسکریپت: راهنمای گام به گام
1403/08/03 16:30

آموزش ساخت یک Todo List با استفاده از DOM و جاوا اسکریپت: راهنمای گام به گام

مطالعه بیشتر
آموزش جامع انواع داده‌ها در PHP (بخش اول: String, Integer, Float, Boolean)
1405/03/24 01:01

آموزش جامع انواع داده‌ها در PHP (بخش اول: String, Integer, Float, Boolean)

مطالعه بیشتر
آموزش ساخت دیتابیس و جدول برای پروژه PHP طبق استاندارد گوگل
1405/05/04 23:38

آموزش ساخت دیتابیس و جدول برای پروژه PHP طبق استاندارد گوگل

مطالعه بیشتر
آموزش قالب‌بندی متن در HTML: استفاده از تگ‌ها و CSS برای استایل‌دهی
1402/05/23 23:32

آموزش قالب‌بندی متن در HTML: استفاده از تگ‌ها و CSS برای استایل‌دهی

مطالعه بیشتر
آموزش کامل $_SERVER در PHP: راهنمای جامع متغیرهای سوپرگلوبال سرور
1405/05/01 20:04

آموزش کامل $_SERVER در PHP: راهنمای جامع متغیرهای سوپرگلوبال سرور

مطالعه بیشتر
آموزش کامل متغیرهای $_GET، $_POST و $_REQUEST در PHP به زبان ساده
1405/05/01 20:01

آموزش کامل متغیرهای $_GET، $_POST و $_REQUEST در PHP به زبان ساده

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد