عملگرهای منطقی در PHP — بررسی ۳ عملگر مهم و کاربردی

عکس شاخص برای عملگرهای منطقی در PHP

عملگرهای منطقی در PHP برای انجام مقایسه‌ها و تصمیم‌گیری‌های منطقی در کد استفاده می‌شوند. این عملگرها معمولاً در ساختارهای کنترلی مانند شرط‌ها if، حلقه‌ها «While»، و سایر بخش‌های تصمیم‌گیری کاربرد دارند. عملگرهای منطقی در PHP به برنامه‌نویس امکان می‌دهند تا چندین شرط را ترکیب کرده و بر اساس نتایج آن‌ها تصمیم‌گیری کند.

مقدمه

عملگرهای منطقی در PHP برای انجام مقایسات و ترکیب چندین شرط استفاده می‌شوند. این عملگرها مقادیر بولی true و false را پردازش کرده و نتیجه‌ای منطقی برمی‌گردانند که در تصمیم‌گیری‌های برنامه نقش اساسی دارد. عملگرهای منطقی در PHP را  می‌توان به && و، || یا، ! و xor اشاره کرد. این عملگرها بر روی مقادیر بولی true و false عمل می‌کنند و نتیجه‌ی آن‌ها نیز مقدار بولی خواهد بود. استفاده‌ی صحیح از این عملگرها باعث افزایش خوانایی و کارایی کد شده و در منطق برنامه نقش مهمی ایفا می‌کند.

در این آموزش، از سری مقاله های مجله پی استور، با عملگرهای منطقی OR ، AND و NOT در PHP آشنا می‌شوید و یاد می‌گیرید که چگونه از آن برای ساخت یک عبارت منطقی پیچیده استفاده کنید.

معرفی عملگر AND در PHP

عملگر منطقی AND دو مقدار ورودی دریافت می‌کند و در صورتی که هر دو مقدار درست (true) باشند، مقدار درست را برمی‌گرداند؛ در غیر این صورت، مقدار نادرست (false) را برمی‌گرداند. در PHP از کلمه‌ی کلیدی and برای نمایش عملگر منطقی AND استفاده می‌شود.

expression1 and expression2

جدول زیر نتیجه‌ی استفاده از عملگر AND را نشان می‌دهد:

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

از آنجایی که کلمات کلیدی در PHP به حروف بزرگ و کوچک حساس نیستند، AND و and عملکرد یکسانی دارند.

expression1 AND expression2

بر اساس قرارداد، بهتر است از عملگر and با حروف کوچک استفاده کنید. علاوه بر کلمه‌ی کلیدی and، زبان PHP از && نیز به‌عنوان عملگر منطقی AND استفاده می‌کند.

expression1 && expression2

عملگرهای && و and نتیجه‌ی یکسانی برمی‌گردانند. تنها تفاوت آن‌ها در اولویت اجرا است. عملگر && اولویت بالاتری نسبت به and دارد. اولویت یک عملگر مشخص می‌کند که PHP هنگام ارزیابی یک عبارت، کدام عملگر را زودتر پردازش کند.

مثال‌هایی از عملگر AND در PHP

فرض کنید می‌خواهید به مشتریانی که بیش از سه کالا با قیمت بالاتر از ۹۹ خریداری می‌کنند، تخفیف بدهید. برای بررسی اینکه آیا مشتریان واجد شرایط دریافت تخفیف هستند یا نه، می‌توانی از عملگر AND به شکل زیر استفاده کنید:

<?php

$price = 100;
$qty = 5;

$discounted = $qty > 3 && $price > 99;


var_dump($discounted);

خروجی:

bool(true)

اگر مقدار qty$ را به ۲ تغییر دهید، مقدار discounted $false خواهد شد، مانند این:

<?php

$price = 100;
$qty = 2;

$discounted = $qty > 3 && $price > 99;


var_dump($discounted);

در عمل، از عملگر منطقی AND در دستورات if، if-else، if-elseif، while و do-while استفاده می‌شود.

اجرای عملگر منطقی AND در php

زمانی که مقدار اولین عبارت false باشد، عملگر منطقی AND متوجه می‌شود که نتیجه نیز false خواهد بود. در این حالت، دیگر مقدار عبارت دوم را بررسی نمی‌کند. به این فرآیند اجرای کوتاه‌شده گفته می‌شود.

<?php

$debug = false;
$debug && print('PHP and operator demo!');

نحوه‌ کار:

  • ابتدا متغیر debug$ را تعریف کنید و مقدار آن را false قرار بدهید.
  • سپس از عملگر منطقی AND برای ترکیب debug$ و تابع ()print استفاده کنید. از آنجایی که مقدار debug $false است، PHP دیگر تابع ()print را اجرا نمی‌کند.
  • اگر مقدار debug$ را به true تغییر دهید، یک پیام در خروجی نمایش داده می‌شود.
<?php

$debug = true;
$debug && print('PHP and operator demo!');

خروجی:

PHP and operator demo!

معرفی عملگر OR در PHP

عملگر منطقی OR دو مقدار ورودی دریافت می‌کند و اگر حداقل یکی از آن‌ها true باشد، مقدار true را برمی‌گرداند؛ در غیر این صورت، مقدار false را برمی‌گرداند. به عبارت دیگر، عملگر منطقی OR فقط در صورتی false می‌شود که هر دو مقدار false باشند. در PHP برای نمایش عملگر منطقی OR می‌توان از کلمه‌ی کلیدی or یا علامت || به‌صورت زیر استفاده کرد:

expression1 or expression2

یا

expression1 || expression2

جدول زیر نتیجه‌ی استفاده از عملگر OR را نشان می‌دهد:

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

توجه داشته باشید که or، Or و OR یکسان هستند، زیرا کلمات کلیدی در PHP به حروف بزرگ و کوچک حساس نیستند.

عملگرهای || و or نتیجه‌ی یکسانی برمی‌گردانند. تنها تفاوت آن‌ها در اولویت اجرا است. عملگر or اولویت پایین‌تری نسبت به || دارد.

مثال‌هایی از عملگر OR در PHP

فرض کن که باید کش «Cache» وب‌سایت را پاک کنید اگر متغیر expired$ یا purge$ مقدار true داشته باشند. برای انجام این کار، می‌توانید از عملگر منطقی OR به شکل زیر استفاده کنید:

<?php

$expired = true;
$purged = false;

$clear_cache = $expired || $purged;

var_dump($clear_cache);

خروجی:

bool(true)

از آنجایی که مقدار expired $true است، نتیجه‌ی عملگر OR نیز true خواهد بود. با این حال، اگر مقدار expired$ را به false تغییر دهید، نتیجه false خواهد شد، همان‌طور که در مثال زیر نشان داده شده است:

<?php

$expired = false;
$purged = false;

$clear_cache = $expired || $purged;

var_dump($clear_cache);

در عمل، از عملگر منطقی OR معمولاً در دستورات if، if-else، if-elseif، while و do-while استفاده می‌شود.

اجرای عملگر منطقی OR در php

اگر مقدار اولین عبارت true باشد، عملگر منطقی OR متوجه می‌شود که نتیجه قطعاً true خواهد بود. در این حالت، دیگر مقدار عبارت دوم را بررسی نمی‌کند. این فرآیند را اجرای کوتاه‌شده می‌نامند. در عمل، معمولاً از عملگر or در الگوی زیر استفاده می‌شود:

function_call() || die(message)

()function_call مقدار true را برگرداند، یعنی عملیات موفق بوده است و PHP هرگز عبارت دوم را که شامل فراخوانی ()die است، اجرا نمی‌کند. اما اگر ()function_call مقدار false برگرداند، PHP تابع ()die را اجرا کرده و پیام خطا نمایش داده می‌شود.

مثال:

<?php

function connect_to_db()
{
 return false;
}

connect_to_db() || die('Cannot connect to the database.');

خروجی:

Cannot connect to the database

در این مثال، اگر تابع ()connect_to_db مقدار false برگرداند، PHP تابع ()die را اجرا کرده و پیام خطا نمایش داده می‌شود.

<?php

$result = false or true;

var_dump($result);

خروجی:

bool(false)

در این مثال، انتظار دارید که مقدار result$ برابر با true باشد، زیرا false OR true مقدار true برمی‌گرداند. اما این اتفاق نمی‌افتد.

$result = false or true;

PHP ابتدا result = false$ را ارزیابی می‌کند و سپس عملگر or را بررسی می‌کند، زیرا عملگر = اولویت بالاتری نسبت به or دارد. توجه داشته باشید که هر عملگر در PHP دارای یک سطح اولویت است. PHP ابتدا عملگرهایی را که اولویت بالاتری دارند پردازش می‌کند و سپس به سراغ عملگرهای با اولویت پایین‌تر می‌رود. از نظر فنی، این عبارت معادل حالت زیر است:

($result = false) or true;

بنابراین، مقدار false به result$ اختصاص داده می‌شود. برای رفع این مشکل، باید از پرانتز استفاده کنید تا ترتیب ارزیابی را تغییر دهید:

<?php

$result = (false or true);

var_dump($result);

خروجی:

bool(true)

یا می‌توانید از عملگر || استفاده کنید:

<?php

$result = false || true;
var_dump($result);

خروجی:

bool(true)

بنابراین، بهتر است همیشه به جای عملگر or از || استفاده کنید.

معرفی عملگر NOT در PHP

برخلاف عملگرهای منطقی AND و OR که دو مقدار ورودی دریافت می‌کنند، عملگر NOT فقط یک مقدار را می‌پذیرد و آن را وارونه می‌کند. به عبارت دیگر، عملگر NOT مقدار true را به false و مقدار false را به true تبدیل می‌کند.در PHP برای نمایش عملگر NOT می‌توان از کلمه‌ی کلیدی not یا علامت ! استفاده کرد.

not expression

یا

! expression

جدول زیر نتیجه‌ی استفاده از عملگر منطقی NOT را نشان می‌دهد:

عکس برای عملگرهای منطقی در PHPعملگر NOT همچنین با نام عملگر نقیض منطقی شناخته می‌شود.

مثال‌هایی از عملگر NOT در PHP

مثال زیر نشان می‌دهد که چگونه می‌توان از عملگر منطقی ! استفاده کرد:

<?php

$priority = 5;
var_dump( ! $priority < 5 );

خروجی:

bool(true)

نتیجه گیری

به طور کلی، عملگرهای منطقی در PHP ابزاری قدرتمند برای ترکیب شرط‌ها و کنترل جریان اجرای برنامه هستند. این عملگرها به برنامه‌نویسان امکان می‌دهند تا چندین شرط را به صورت همزمان بررسی کرده و تصمیم‌گیری‌های پیچیده‌تری را به سادگی مدیریت کنند. استفاده‌ی صحیح و بهینه از این عملگرها نه‌تنها باعث خوانایی و کارایی بهتر کد می‌شود، بلکه از بروز خطاهای منطقی در تصمیم‌گیری‌های برنامه نیز جلوگیری می‌کند. درک عمیق این عملگرها و به‌کارگیری آن‌ها در شرایط مناسب، نقش مهمی در بهبود ساختار و عملکرد کلی کد دارد.

میزان رضایتمندی
لطفاً میزان رضایت خودتان را از این مطلب با دادن امتیاز اعلام کنید.
[ امتیاز میانگین 0 از 0 نفر ]
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع و مراجع:
phptutorial php w3schools

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *



برچسب‌ها:
php


پیمایش به بالا