آموزش رایگان 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) بیشتر است.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش استفاده از ماژول‌ها (Modules) در جاوا اسکریپت: آشنایی با ES6 Modules - راهنمای کامل
1403/08/05 20:24

آموزش استفاده از ماژول‌ها (Modules) در جاوا اسکریپت: آشنایی با ES6 Modules - راهنمای کامل

مطالعه بیشتر
کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت
1402/05/25 00:16

کاربرد تگ‌های meta، title و keywords در سئو: راهنمای جامع بهینه‌سازی وب‌سایت

مطالعه بیشتر
JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد
1402/06/28 23:35

JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد

مطالعه بیشتر
معرفی DOM و اصول آن در جاوا اسکریپت: راهنمای جامع برای مبتدیان
1403/08/01 20:30

معرفی DOM و اصول آن در جاوا اسکریپت: راهنمای جامع برای مبتدیان

مطالعه بیشتر
تفاوت PHP با HTML، CSS و JavaScript؛ راهنمای جامع و ساده برای مبتدیان
1405/03/21 01:06

تفاوت PHP با HTML، CSS و JavaScript؛ راهنمای جامع و ساده برای مبتدیان

مطالعه بیشتر
تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها
1403/07/30 21:53

تفاوت Callbacks و Promises در جاوا اسکریپت: مقایسه جامع با مثال‌ها

مطالعه بیشتر
آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)
1405/04/16 00:37

آموزش کامل حلقه foreach در PHP برای پیمایش آرایه‌ها (به زبان ساده)

مطالعه بیشتر
آموزش جامع پیاده‌سازی سطح دسترسی کاربران (ACL) در PHP
1405/05/14 22:17

آموزش جامع پیاده‌سازی سطح دسترسی کاربران (ACL) در PHP

مطالعه بیشتر
آموزش کامل توابع سازنده (Constructors) و پروتوتایپ‌ها (Prototypes) در جاوا اسکریپت: راهنمای جامع
1403/07/28 21:41

آموزش کامل توابع سازنده (Constructors) و پروتوتایپ‌ها (Prototypes) در جاوا اسکریپت: راهنمای جامع

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

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

مطالعه بیشتر
آموزش CSS Transform و Transition: تبدیل‌ها و ایجاد تغییرات ظاهری پویا
1402/06/10 18:32

آموزش CSS Transform و Transition: تبدیل‌ها و ایجاد تغییرات ظاهری پویا

مطالعه بیشتر
آموزش جامع و استاندارد کار با رشته‌ ها در PHP
1405/04/27 20:59

آموزش جامع و استاندارد کار با رشته‌ ها در PHP

مطالعه بیشتر

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