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

آموزش جامع عملگرهای مقایسه‌ای در PHP؛ بررسی تفاوت == و ===

1405/04/03 23:47 محراب حسن زاده
آموزش جامع عملگرهای مقایسه‌ای در PHP؛ بررسی تفاوت == و ===

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

تصمیم‌گیری، هسته اصلی هر برنامه کامپیوتری است. برای اینکه برنامه‌های ما بتوانند در شرایط مختلف رفتارهای متفاوتی نشان دهند، باید بتوانند مقادیر را با هم مقایسه کنند. در زبان PHP، عملگرهای مقایسه‌ای (Comparison Operators) این وظیفه حیاتی را برعهده دارند. خروجی هر مقایسه همواره یک مقدار بولین (Boolean) یعنی یا true (صحیح) و یا false (غلط) است.

جدول معرفی عملگرهای مقایسه‌ای در PHP

قبل از اینکه وارد جزئیات و تفاوت‌های ظریف شویم، بیایید با هم لیست کامل این عملگرها را بررسی کنیم:

عملگر نام علمی توضیح عملکرد
== Equal (مساوی) بررسی برابری مقدار (بدون توجه به نوع داده)
=== Identical (همانی) بررسی برابری مقدار و همسانی نوع داده
!= یا <> Not equal (نامساوی) بررسی نابرابری مقدار
!== Not identical (ناهمانی) بررسی نابرابری مقدار یا ناهماهنگی نوع داده
< Less than (کوچک‌تر) بررسی اینکه مقدار سمت چپ کوچک‌تر از سمت راست است یا خیر
> Greater than (بزرگ‌تر) بررسی اینکه مقدار سمت چپ بزرگ‌تر از سمت راست است یا خیر
<= Less than or equal (کوچک‌تر مساوی) کوچک‌تر یا مساوی بودن
>= Greater than or equal (بزرگ‌تر مساوی) بزرگ‌تر یا مساوی بودن
<=> Spaceship (سفینه فضایی) مقایسه ترکیبی (مخصوص مرتب‌سازی مقادیر)

بررسی تخصصی تفاوت مساوی (==) و همانی (===)

یکی از رایج‌ترین اشتباهات برنامه‌نویسان تازه کار در PHP، درک نادرست تفاوت میان == و === است. در زبان PHP مقایسه دو مقدار می‌تواند به دو صورت سست یا سخت‌گیرانه انجام شود.

۱. عملگر مساوی یا سست (==)

وقتی از دو مساوی استفاده می‌کنید، PHP قبل از انجام مقایسه، ابتدا سعی می‌کند هر دو متغیر را به یک نوع داده مشترک تبدیل کند (Type Juggling) و سپس مقادیر آن‌ها را بسنجد.


$x = 100;
$y = "100";

if ($x == $y) {
    echo "این شرط درست (true) است، زیرا مقدار هر دو ۱۰۰ است.";
}

۲. عملگر همانی یا سخت‌گیرانه (===)

در حالت سه مساوی، هیچ تبدیلی در نوع داده صورت نمی‌گیرد. شرط تنها زمانی برقرار است که هم مقدار و هم نوع داده کاملاً یکسان باشند.


$x = 100;
$y = "100";

if ($x === $y) {
    echo "این بخش اجرا نخواهد شد.";
} else {
    echo "این شرط غلط (false) است، زیرا نوع داده اولی عدد صحیح (Integer) و دومی رشته (String) است.";
}

عملگر جالب سفینه فضایی (<=>) در PHP

این عملگر که از نسخه PHP 7 به بالا معرفی شده است، برای مقایسه سه حالته استفاده می‌شود و یکی از مقادیر -1، 0 یا 1 را برمی‌گرداند:

  • اگر مقدار سمت چپ کوچک‌تر باشد: -1
  • اگر دو مقدار مساوی باشند: 0
  • اگر مقدار سمت چپ بزرگ‌تر باشد: 1

echo 5 <=--> 10; // خروجی: -1
echo 5 <=> 5;  // خروجی: 0
echo 10 <=> 5; // خروجی: 1

نتیجه‌گیری و بهترین شیوه (Best Practice)

برای جلوگیری از باگ‌های ناخواسته منطقی در برنامه‌های خود، همیشه تلاش کنید از عملگرهای مقایسه‌ای سخت‌گیرانه (=== و !==) استفاده کنید. استفاده از مقایسه‌های سست ممکن است در مقایسه مقادیری مثل صفر (0)، رشته خالی ("") و مقدار NULL رفتار عجیبی از خود نشان دهد و امنیت یا کارکرد پروژه شما را به خطر بیندازد.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش کار با رویدادهای فرم و اعتبارسنجی فرم‌ها در جاوا اسکریپت: راهنمای جامع
1403/08/03 16:47

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

مطالعه بیشتر
بررسی کتابخانه‌های محبوب جاوا اسکریپت: آشنایی با Lodash و Moment.js - مزایا و کاربردها
1403/08/04 19:06

بررسی کتابخانه‌های محبوب جاوا اسکریپت: آشنایی با Lodash و Moment.js - مزایا و کاربردها

مطالعه بیشتر
آموزش جامع و اصولی جستجو در دیتابیس با PHP و MySQL (مطابق استانداردهای گوگل)
1405/05/13 21:26

آموزش جامع و اصولی جستجو در دیتابیس با PHP و MySQL (مطابق استانداردهای گوگل)

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

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

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

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

مطالعه بیشتر
Async/Await: نوشتن کدهای خواناتر و ناهم‌زمان در جاوا اسکریپت - آموزش کامل با مثال‌ها
1403/07/30 20:50

Async/Await: نوشتن کدهای خواناتر و ناهم‌زمان در جاوا اسکریپت - آموزش کامل با مثال‌ها

مطالعه بیشتر
آموزش جامع توابع داخلی و پرکاربرد PHP + مثال‌های عملی
1405/04/16 01:18

آموزش جامع توابع داخلی و پرکاربرد PHP + مثال‌های عملی

مطالعه بیشتر
آموزش جامع اعتبارسنجی حجم و نوع فایل آپلودی در PHP طبق استانداردهای امنیتی گوگل
1405/05/01 20:20

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

مطالعه بیشتر
آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر به‌صورت دقیق
1403/08/12 19:51

آموزش استفاده از object-fit و object-position در CSS: تنظیم و قرارگیری تصاویر به‌صورت دقیق

مطالعه بیشتر
آموزش ارث‌بری (Inheritance) در جاوا اسکریپت: نحوه استفاده از پروتوتایپ‌ها و کلاس‌ها
1403/07/28 21:20

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

مطالعه بیشتر
آموزش سیر تا پیاز تاریخ و زمان در PHP (استاندارد گوگل)
1405/04/27 21:58

آموزش سیر تا پیاز تاریخ و زمان در PHP (استاندارد گوگل)

مطالعه بیشتر
آموزش جامع کوکی (Cookie) در PHP + مدیریت اصولی و امنیت آن بر اساس استاندارد گوگل
1405/05/01 20:10

آموزش جامع کوکی (Cookie) در PHP + مدیریت اصولی و امنیت آن بر اساس استاندارد گوگل

مطالعه بیشتر

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