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

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

3م تیر 1405 محراب حسن زاده
آموزش کامل عملگرهای منطقی در 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) بیشتر است.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

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

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

مطالعه بیشتر
آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال
23م آذر 1404

آموزش Directive‌ های Vue.js | استفاده از v-model، v-bind و v-show با مثال

مطالعه بیشتر
آشنایی با متغیرها در PHP به زبان ساده (راهنمای جامع)
21م خرداد 1405

آشنایی با متغیرها در PHP به زبان ساده (راهنمای جامع)

مطالعه بیشتر
آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها
2م آبان 1403

آموزش تغییر المان‌های DOM: ویرایش متن، سبک‌ها و کلاس‌ها در جاوا اسکریپت - راهنمای کامل با مثال‌ها

مطالعه بیشتر
پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of
4م مهر 1403

پیمایش اشیاء و آرایه‌ها در جاوا اسکریپت: راهنمای کامل برای Object.keys، Object.values، for...in و for...of

مطالعه بیشتر
آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل
6م شهریور 1402

آموزش مفاهیم اولیه CSS Grid Layout: طراحی شبکه‌های پیچیده و واکنش‌گرا راهنمای کامل

مطالعه بیشتر
ایجاد Layout‌های واکنش‌گرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع
11م آبان 1403

ایجاد Layout‌های واکنش‌گرا با flex-direction و justify-content در CSS Flexbox: راهنمای جامع

مطالعه بیشتر
آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol
10م آبان 1403

آموزش استایل‌دهی لیست‌ها در CSS: طراحی و استایل‌دهی ul و ol

مطالعه بیشتر
آموزش لیست‌ها در CSS: طراحی و استایل‌دهی ساده برای لیست‌های HTML
10م شهریور 1402

آموزش لیست‌ها در CSS: طراحی و استایل‌دهی ساده برای لیست‌های HTML

مطالعه بیشتر
آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا
18م شهریور 1402

آموزش طراحی و استایل‌دهی فرم‌ها با CSS: ایجاد فرم‌های کاربرپسند و واکنش‌گرا

مطالعه بیشتر
آموزش Event Handling و v-on در Vue.js | مدیریت رویدادها با مثال کاربردی
22م آذر 1404

آموزش Event Handling و v-on در Vue.js | مدیریت رویدادها با مثال کاربردی

مطالعه بیشتر
درک و استفاده از Watchers در Vue.js | آموزش Watch با مثال کاربردی
28م آذر 1404

درک و استفاده از Watchers در Vue.js | آموزش Watch با مثال کاربردی

مطالعه بیشتر

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