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


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها
1م آبان 1403

آموزش ارتباط با سرور و ارسال درخواست‌های HTTP با Fetch API در جاوا اسکریپت: راهنمای جامع با مثال‌ها

مطالعه بیشتر
آموزش جامع اینترفیس‌ها و کلاس‌ها (Classes) در ES6 جاوا اسکریپت: مفاهیم و کاربردها
28م مهر 1403

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

مطالعه بیشتر
تفاوت Data و Computed Properties در Vue.js | آموزش کاربردی و مثال‌محور
21م آذر 1404

تفاوت Data و Computed Properties در Vue.js | آموزش کاربردی و مثال‌محور

مطالعه بیشتر
آموزش اصول کار با WebSockets و ارتباطات بلادرنگ در وب: راهنمای کامل
5م آبان 1403

آموزش اصول کار با WebSockets و ارتباطات بلادرنگ در وب: راهنمای کامل

مطالعه بیشتر
مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on
28م شهریور 1402

مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on

مطالعه بیشتر
آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var
18م شهریور 1402

آموزش متغیرهای سفارشی (Custom Properties) در CSS: نحوه تعریف و استفاده از var

مطالعه بیشتر
آموزش تگ‌های زمان و مکان در HTML: استفاده از time و location در صفحات وب
29م مرداد 1402

آموزش تگ‌های زمان و مکان در HTML: استفاده از time و location در صفحات وب

مطالعه بیشتر
آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed
5م شهریور 1402

آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed

مطالعه بیشتر
استفاده از clip-path در CSS برای برش‌های زیبا و جذاب: راهنمای کامل
16م آبان 1403

استفاده از clip-path در CSS برای برش‌های زیبا و جذاب: راهنمای کامل

مطالعه بیشتر
آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها
28م شهریور 1402

آموزش ایجاد یک پروژه ساده React: شروع کار و ساختاردهی کامپوننت‌ها

مطالعه بیشتر
توابع فلش (Arrow Functions) در جاوا اسکریپت: ساده‌سازی کد با استفاده از ES6
2م شهریور 1403

توابع فلش (Arrow Functions) در جاوا اسکریپت: ساده‌سازی کد با استفاده از ES6

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

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

مطالعه بیشتر

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