عملگر های مقایسه ای (Comparison) در PHP

عملگر های مقایسه ای – Comparison در زبان برنامه نویسی PHP از عملگر های اصلی برای مقایسه داده و شرایط مختلف به حساب می آید .
مواردی همچون مساوی ، کوچک تر ، بزرگ تر ، مساوی از لحاظ نوع داده و دیگر شرایط .
کار مان را با 2 متغیر زیر شروع می کنیم .
$a = 15; $b = 20;
علامت های قابل استفاده برای مقایسه : ( توضیحات در پایین کد )
== != <> === !== < <= > >= <=>
1- آیا فقط مقدار دو داده مساوی است
2- آیا فقط مقدار دو داده مساوی نیست
3- همان مورد 2 فقط با علامت متفاوت
4- آیا مقدار دو داده و نوع داده شان مساوی است
5- آیا مقدار دو داده یا نوع داده شان مساوی نیست
6- آیا متغیر اول کوچک تر است از متغیر دوم
7- آیا متغیر اول کوچک تر یا مساوی است با متغیر دوم
8- آیا متغیر اول بزرگ تر است از متغیر دوم
9- آیا متغیر اول بزرگ تر یا مساوی است با متغیر دوم
10 – مورد 6 و 8 و + یا مساوی است
قبل از شروع کار نیاز است که با تابع intval ( تبدیل نوع داده های دیگر به integer ) آشنا شوید که یک تابع است برای Type Casting برای تبدیل نوع داده ای به نوع دیگر بدون از دست دادن اطلاعات ناقص .
در PHP اگر بخواهیم true را echo کنیم عدد 1 را مشاهده می کنیم و اگر false باشد هیچ خروجی نمایش داده نمی شود برای همین از intval استفاده می کنیم تا در صورتی که
true بود 1 و false بود 0 نمایش داده شود .
مقایسه با ==
echo intval($a == $b); // 0
مقایسه با =!
echo intval($a != $b); // 1
مقایسه با <>
echo intval($a <> $b); // 1
مقایسه با ===
همین طور که در کد پایین مشاهده می کنید با اینکه مقدار a و b مساوی است اما نوع داده شان یکی نیست . همانطور که توضیح داده شد برای دریافت true باید هم مقدار و هم نوع داده یکی باشد . ( یعنی هر 2 مورد باید فراهم شود )
$a = 20; $b = '20'; echo intval($a === $b); // 0
مقایسه با !==
نوع داده یا مقدار مساوی نباشد ( یکی از شرایط کافی است )
$a = 20; $b = '20'; echo intval($a !== $b); // 1
مقایسه با >
$a = 15; $b = 20; echo intval($a < $b); // 1
مقایسه با =>
$a = 20; $b = 20; echo intval($a <= $b); // 1
مقایسه با <
$a = 21; $b = 20; echo intval($a > $b); // 1
مقایسه با =<
$a = 20; $b = 20; echo intval($a >= $b); // 1
مقایسه با <=>
این عملگر دارای 3 خروجی در شرایط مختلف است :
مورد 1 : در صورتی که متغیر اول از دوم کوچک تر باشد
خروجی 1- برگردانده می شود
$a = 11; $b = 23; echo intval($a <=> $b); // -1
مورد 2 : در صورتی که متغیر اول با دوم مساوی باشد
خروجی 0 برگردانده می شود
$a = 23; $b = 23; echo intval($a <=> $b); // 0
مورد 3 : در صورتی که متغیر اول از دوم بزرگ تر باشد
خروجی 1 برگردانده می شود
$a = 25; $b = 21; echo intval($a <=> $b); // 1
مقایسه کاراکتر ها
برای درک بهتر از کد کاراکتر عملگر های Increment و Decrement در PHP (پایین مقاله) را مطالعه کنید .
مقایسه رشته با 1 کاراکتر
$a = "A"; // 65 $b = "B"; // 66 echo intval($a < $b); // 1
مقایسه رشته با بیش تر از 1 کاراکتر ( حالت اول )
در صورتی که اولین کاراکتر رشته ها مساوی باشد کاراکتر های بعد مورد مقایسه قرار می گیرد . متغیر y دارای کاراکتر A است اما متغیر x فاقد کاراکتر
$x = "B"; $y = "BA"; echo intval($x < $y); // 1
مقایسه رشته با بیش تر از 1 کاراکتر ( حالت دوم )
در صورتی که اولین کاراکتر رشته ها نا مساوی باشد ، از کاراکتر های بعدی چشم پوشی می شود .
$x = "B"; $y = "ABCE"; echo intval($x > $y); // 1
عملگر های مقایسه ای
ارسال نظر