آموزش رایگان 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 رفتار عجیبی از خود نشان دهد و امنیت یا کارکرد پروژه شما را به خطر بیندازد.


پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

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

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

مطالعه بیشتر
آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها
1402/06/05 00:13

آموزش تغییر نوع و اندازه فونت و رنگ متن با CSS: استایل‌دهی حرفه‌ای به متن‌ها

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

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

مطالعه بیشتر
آموزش صفر تا صد ساخت ماشین حساب با جاوا اسکریپت (پروژه محور و کاربردی)
1405/03/13 23:55

آموزش صفر تا صد ساخت ماشین حساب با جاوا اسکریپت (پروژه محور و کاربردی)

مطالعه بیشتر
معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن
1402/06/28 00:59

معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن

مطالعه بیشتر
آموزش استفاده از cubic-bezier در CSS برای انیمیشن‌های سفارشی و حرفه‌ای
1403/08/12 20:28

آموزش استفاده از cubic-bezier در CSS برای انیمیشن‌های سفارشی و حرفه‌ای

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

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

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

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

مطالعه بیشتر
آموزش جامع ساخت فرم ثبت‌نام کاربران با PHP و MySQL طبق اصول امنیتی گوگل
1405/05/13 21:34

آموزش جامع ساخت فرم ثبت‌نام کاربران با PHP و MySQL طبق اصول امنیتی گوگل

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

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

مطالعه بیشتر
آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)
1405/05/14 22:03

آموزش جامع ساخت فرم ورود کاربر در PHP (براساس استانداردهای گوگل و امنیت بالا)

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

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

مطالعه بیشتر

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