عملگرها

  • عملگر به کاراکترهایی گفته می شود که برای انجام یک عمل روی متغیرها و مقادیر آنها بکار میروند
  • مثال + یک عملگر برای جمع زدن مقدار دو متغیر است

انواع عملگرها

  • عملگرهای حسابی
  • عملگرهای افزایشی و کاهشی
  • عملگرهای مقایسه ای
  • عملگرهای منطقی
  • عملگرهای انتساب

عملگرهای حسابی

  • عملگرهایی که برای محاسبات ریاضی استفاده میشوند
عملگر نام عملگر توضیح مثال نتیجه مثال
+ جمع دو مقدار را با هم جمع می‌کند x = 5 + 3 x = 8
- تفریق مقدار دوم را از اولی کم می‌کند x = 5 - 3 x = 2
* ضرب دو مقدار را در هم ضرب می‌کند x = 5 * 3 x = 15
/ تقسیم مقدار اول را بر دومی تقسیم می‌کند x = 6 / 3 x = 2
% باقیمانده تقسیم (مدول) باقیمانده‌ی تقسیم دو عدد را برمی‌گرداند x = 7 % 3 x = 1

عملگرهای افزایشی و کاهشی

  • این عملگرها برای اضافه کردن و کم کردن یک مقدار برای متغیر استفاده میشود
  • در برنامه نویسی نیاز پیدا میکنیم در هر مرحله از تکرار یک فرایند مقدار متغیر یک واحد تغییر کند
عملگر نام توضیح مثال نتیجه مثال
++x افزایش پیشوندی مقدار را قبل از استفاده یک واحد زیاد می‌کند اگر x = 5 , y = ++x → x = 6, y = 6
x++ افزایش پسوندی مقدار را بعد از استفاده یک واحد زیاد می‌کند اگر x = 5 , y = x++ → x = 6, y = 5
--x کاهش پیشوندی مقدار را قبل از استفاده یک واحد کم می‌کند اگر x = 5 , y = --x → x = 4, y = 4
x-- کاهش پسوندی مقدار را بعد از استفاده یک واحد کم می‌کند اگر x = 5 , y = x-- → x = 4, y = 5

تفاوت نوع پیشوندی و پسوندی عملگرهای افزایشی و کاهشی

  • در نوع پیشوندی: فرض کنید می خواهیم مقدار یک متغیر اول نمایش داده شود و برای مرحله بعد استفاده یک واحد تغییر کند. به مثال زیر توجه کنید
<?php
$x = 30 ;

// اول مقدار متغیر نمایش داده میشود و در مرحله بعد تغییر می کند 
echo "مقدار متغیر قبل از تغییر " . $x++ . "<br><br>" ; 


echo "مقدار متغیر بعد از تغییر " . $x ;
  • اما در نوع پسوندی: فرض کنید می خواهیم مقدار متغیر قبل از استفاده تغییر کرده باشد
<?php
$x = 30 ;

// اول مقدار متغیر تغییر می کند و سپس نمایش داده میشود
echo "مقدار متغیر قبل از تغییر " . --$x . "<br><br>" ; 

عملگرهای مقایسه ای

  • این عملگرها برای مقایسه مقدار دو طرف استفاده میشوند
  • توجه: خروجی این مقایسه ها از نوع دوتایی true یا false است
عملگر نام عملگر توضیح مثال نتیجه مثال
== مساوی بررسی می‌کند آیا دو مقدار برابر هستند (نوع داده مهم نیست) x = 5, y = '5' → x == y درست (true)
=== مساوی و هم‌نوع بررسی می‌کند آیا مقدار و نوع داده هر دو برابرند x = 5, y = '5' → x === y نادرست (false)
!= نابرابر بررسی می‌کند آیا دو مقدار برابر نیستند x = 5, y = 3 → x != y درست (true)
<> نابرابر (شکل دیگر) همان کار != را انجام می‌دهد x = 5, y = 3 → x <> y درست (true)
!== نابرابر یا غیرهم‌نوع بررسی می‌کند آیا مقدار یا نوع داده متفاوت است x = 5, y = '5' → x !== y درست (true)
> بزرگ‌تر از بررسی می‌کند آیا مقدار اول از دوم بزرگ‌تر است x = 7, y = 5 → x > y درست (true)
< کوچک‌تر از بررسی می‌کند آیا مقدار اول از دوم کوچک‌تر است x = 3, y = 8 → x < y درست (true)
=> بزرگ‌تر یا مساوی بررسی می‌کند آیا مقدار اول بزرگ‌تر یا برابر است x = 5, y = 5 → x >= y درست (true)
=< کوچک‌تر یا مساوی بررسی می‌کند آیا مقدار اول کوچک‌تر یا برابر است x = 4, y = 6 → x <= y درست (true)
<=> عملگر فضا‌پیما (spaceship) اگر اولی کوچک‌تر باشد -1، برابر باشد 0، و بزرگ‌تر باشد 1 برمی‌گرداند x = 5, y = 8 → x <=> y -1
  • میتوان برای دیدن نتیجه مقایسه ها از ()var_dump استفاده کرد. به مثال زیر توجه کنید
<?php
$x = 55 ;
$y = 55 ;

var_dump($x < $y);
// < , > , <= , >= , != , == , === 

عملگرهای منطقی

  • برای ترکیب دو مقایسه یا شرط استفاده میشوند
  • نتیجه خروجی این عملگرها هم از نوع دوتایی true یا false است
  • مثالا: من بگویم برو کیک و آبمیوه بخر بیار. چون قید " و " استفاده شده باید هر دو مورد انجام شود تا نتیجه true باشد
  • اما اگر بگویم برای کدنویسی می توانی از ویندوز یا لینوکس استفاده کنی یعنی میتوانی از هر کدام آنها استفاده کنی و هم میتوانی از هر دو استفاده کنی چون اینجا قید " یا " آورده شده و تنها در صورتی نتیجه false خواهد بود که از هیچ کدام استفاده نکنی
عملگر نام عملگر توضیح مثال نتیجه مثال
and و (ترجیح پایین‌تر) وقتی هر دو عبارت درست باشند، نتیجه درست است (x > 0 and y > 0) درست اگر هر دو مثبت باشند
&& و (ترجیح بالاتر) مشابه and ولی با اولویت بالاتر در محاسبه (x == 5 && y == 10) درست فقط اگر هر دو درست باشند
or یا (ترجیح پایین‌تر) اگر یکی از عبارات درست باشد، نتیجه درست است (x > 0 or y < 0) درست اگر یکی درست باشد
! نقیض (not) نتیجه را برعکس می‌کند !(x == 5) اگر x برابر 5 باشد → نادرست
xor یا انحصاری (فقط یکی درست باشد) فقط وقتی یکی از عبارات درست باشد، نتیجه درست است (x > 0 xor y > 0) درست اگر فقط یکی از دو شرط درست باشد
  • به مثال زیر توجه کنید
<?php
$adad1 = 36 ;
$adad2 = 17 ;
$adad3 = 81 ;
$adad4 = 46 ;
$shart = true ;

var_dump( $adad1 > $adad2 and $adad3 > $adad4);

echo "<br><br>";
var_dump( $adad1 == $adad2 or $adad3 > $adad4);

echo "<br><br>";
var_dump( $adad1 > $adad2 xor $adad3 > $adad4);

echo "<br><br>";
var_dump( ! $shart);

تفاوت and , && و or , ||

  • برای عملگر "و" دو شکل دادیم که and و && بودند تفاوت آنها در مقدم بودن شکل قدیمی است. یعنی اول عملگر && اجرا می شود بعد and اجرا می شود
  • برای عملگر منطقی "یا" هم همین موضوع صدق میکند که شکل قدیمی آن || بر شکل جدید آن or مقدم است و اول || اجرا می شود.
  • پس بهتر است در کد نویسی خود از شکل قدیمی استفاده کنیم تا در کدها به مشکل نخوریم
<?php
$adad1 = 36 ;
$adad2 = 17 ;
$adad3 = 81 ;
$adad4 = 46 ;
$shart = true ;

var_dump( $adad1 > $adad2 and $adad3 > $adad4 && $adad1 > $adad4);

عملگر های انتسابی

  • این عملگرها برای مقدار دهی به متغیر ها یا ادغام مقادیر در هم کاربرد دارند
عملگر نام عملگر توضیح مثال نتیجه مثال
= انتساب ساده مقدار سمت راست را به متغیر سمت چپ می‌دهد x = 10 x برابر 10 می‌شود
+= جمع و انتساب مقدار جدید را با مقدار قبلی جمع کرده و در همان متغیر ذخیره می‌کند x = 5 , x += 3 x = 8
-= تفریق و انتساب مقدار سمت راست از مقدار فعلی کم می‌شود x = 10 , x -= 4 x = 6
*= ضرب و انتساب مقدار سمت راست در مقدار فعلی ضرب می‌شود x = 4 , x *= 2 x = 8
/= تقسیم و انتساب مقدار فعلی بر مقدار سمت راست تقسیم می‌شود x = 12 , x /= 3 x = 4
%= باقیمانده و انتساب باقیمانده‌ی تقسیم را در متغیر ذخیره می‌کند x = 10 , x %= 4 x = 2
**= توان و انتساب مقدار سمت راست را به توان مقدار فعلی می‌رساند x = 3 , x **= 2 x = 9
.= الحاق رشته و انتساب دو رشته را به هم متصل می‌کند text = "Hello" , text .= " World" text = "Hello World"
  • برای درک عملگری مثل =+ به مثال زیر توجه کنید
<?php
$x = 10 ;
$y = 5 ;

// $x = $x + $y ;

$x += $y ;

echo $x ;

عملگر شرطی

  • زمانی که می خواهیم وضعیت یک شرط را با یک پیام ساده نشان دهیم از این عملگر استفاده میشود
<?php
$x = ( 5 < 3 ) ? "yes" : "no" ;

echo $x ;
  • اول شرط را در پرانتز قرار می دهیم. بعد از شرط علامت سوال ? قرار میدهیم و عبارتی که برای صحیح بودن شرط میخواهیم نمایش داده شود را در دابل کوتیشن می گذاریم. بعد از عبارت صحیح علامت دو نقطه : می گذاریم و عبارتی که در صورت غلط بود شرط می آید را در داخل دابل کوتیشن می گذاریم