در این مقاله شما درباره انواع عملگرها در زبان PHP آموزش خواهید دید. ۷ نوع عملگر Operators را معرفی خواهیم کرد، عملگرهایی همانند عملگرهای بیتی یا عملگر -> و <- و یا عملگرهای مقایسه ای و سایر آنها را به همراه مثال در ادامه تشریح خواهیم کرد.
سرفصلهای پست
- 1 دوره آموزش PHP به زبان ساده – عملگرها در PHP
- 2 فرق بین عملگر با عملوند چیست؟
- 3 انواع عملگرها در PHP
- 3.1 عملگرهای محاسبانی – Arithmetic Operators
- 3.2 عملگر افزایشی و عملگر کاهشی (Increment & Decrement)
- 3.3 عملگر انتساب (Assignment Operators)
- 3.4 عملگر مقایسهای (Comparison Operators)
- 3.5 عملگر منطقی (Logical Operators)
- 3.6 عملگر رشته ای (String Operators)
- 3.7 عملگر آرایه (Array Operators)
- 3.8 تقدم عملگرها
دوره آموزش PHP به زبان ساده – عملگرها در PHP
سلام دوستان برنامه نویس، در ادامه دوره آموزش PHP در خدمت شما هستیم در قسمت قبل درباره متغیر متغیرها در PHP پرداختیم، در این جلسه قصد داریم درباره عملگرها در پی اچ پی یا به انگلیسی operators صحبت کنیم. که در ادامه مطلب بیشتر درباره این موضوع میپردازیم. قبل از هر چیز بهتر است تفاوت بین یک عملگر با عملوند را بدانید.
فرق بین عملگر با عملوند چیست؟
عملگرها عملیاتهای مختلفی را بر روی متغیرها و مقادیر اجرا میکنند به شکل کلی میتوان گفت عملگرها (operators) عملیات مختلفی را بر روی عملوندها (operand) انجام میدهند. عکس زیر گویای کاملی برای تفاوت این موضوع است.
انواع عملگرها در PHP
- عملگرهای محاسبانی (Arithmetic Operators)
- عملگر افزایشی و عملگر کاهشی (Increment & Decrement)
- عملگرهای انتساب (Assignment Operators)
- عملگرهای مقایسهای (Comparison Operators)
- عملگرهای منطقی (Logical Operators)
- عملگر رشته ای (String Operators)
- عملگر آرایه (Array Operators)
عملگرهای محاسبانی – Arithmetic Operators
عملگرهای محاسباتی با مقادیر عددی به منظور انجام عملیاتهای محاسباتی رایج هستند
به جدول بالا توجه کنید به سادگی گویای همه چی است.
Addition = جمع کردن
Subtraction = منفی کردن
Multiplication = ضرب کردن
Division = تقسیم
Modulus = باقی مانده تقسیم
مثال از چهارتای اول عملگرهای محاسباتی
<?php $num1 = 8; $num2 = 6; //Addition echo $num1 + $num2; //14 //Subtraction echo $num1 - $num2; //2 //Multiplication echo $num1 * $num2; //48 //Division echo $num1 / $num2; //1.33333333333 ?>
مثالی از Modulus در عملگرهای محاسباتی
<?php $x = 14; $y = 3; echo $x % $y; // 2 ?>
عملگر Modulus باقی مانده تقسیم x بر y را در خروجی میدهد. اگر ۱۴ تا بر ۳ تقسیم کنید متوجه خواهید شد که باقی مانده ۲ دارد و عملگر Modulus باقی مانده را بازمیگرداند.
توجه:اگر شما در هنگام استفاده از عملگر modulus از عملوندهای ممیزی (float) استفاده کنید عملوندها قبل از محاسبه و تقسیدم شدن اول به integer تبدیل میشوند و سپس محاسبه میگردند.
عملگر افزایشی و عملگر کاهشی (Increment & Decrement)
عملگر افزایشی : عملگر increment به منظور افزایش مقدار متغیر به کار میروند.
عملگر کاهشی : عملگر decrement به منظور کاهش مقدار متغیر به کار میروند.
$x++; // معادل عبارت پایین است $x = $x+1; $x--; // معادل عبارت پایین است $x = $x-1;
عملگرهای افزایشی و کاهشی میتواند قبل یا بعد از متغیر قرار گیرند:
$x++; // post-increment $x--; // post-decrement ++$x; // pre-increment --$x; // pre-decrement
تحلیل post increment و post decrement
اگر عملگرها بعد از متغیر قرار گیرند مقدار اولیه را پیش از آنکه تغییری در متغیر ایجاد کند باز میگردانند.
تحلیل pre increment و pre decrement
اگر عملگرها قبل از متغیر قرار گیرند ابتدا متغیر را تغییر میدهند و سپس مقدار را باز میگردانند.
برای درک بهتر به مثال زیر توجه کنید:
$a = 2; $b = $a++; // $a=3, $b=2 $a = 2; $b = ++$a; // $a=3, $b=3
در خط اول مقدار a زیر ۲ بوده چون عملگر بعد از متغیر است و حالت post increment را دارد پس اول مقدار خود یعنی ۲ را در محاسبه درج میکند و مقدار b نیز طبق محاسبه ۲ میشود سپس بعد از محاسبه مقدار a نیز ۳ میشود. ولی در خط دوم چون حالب pre increment است اول مقدار اولیه افزایش میابد یعنی مقدار متغیر a از ۲ به ۳ میرود و سپس مقدار افزایش داده شده از محاسبات دخیل میشود و مقدار b نیز ۳ میشود.
عملگر انتساب (Assignment Operators)
عملگرهای جایگزینی با مقادیر عددی و به منظور وارد کردن مقادیر به متغیرها کار میکنند
$num1 = 5; $num2 = $num1;
هر دو متغیر بالا یعنی num1 و num2 مقدار ۵ را نشان میدهند.
ترکیب عملگرهای انتساب با عملگرهای محاسبانی
عملگرهای انتساب همچنین میتوانند در ترکیب با عملگرهای محاسباتی به کار روند
برای درک بهتر به مثال زیر توجه کنید
<?php $x = 50; $x += 100; echo $x; // Outputs: 150 ?>
عملگر مقایسهای (Comparison Operators)
دو نکته مهم درمورد عملگرهای مقایسهای وجود دارد. مورد اول این است که عملگرهای مقایسهای دو مقدار را با هم مقایسه میکنند [ عدد (integer) یا رشته (string) ] و دوم این که عملگرهای مقایسه ای درون عبارات شرطی به کار میروند و با True یا False ارزیابی میشوند.
[box type=”note” align=”alignright” class=”” width=”100%”]توجه داشته باشید که حاصل عملگرهای مقایسه ای نیز بولین خواهد بود[/box]تشریح عملگرهای مقایسه ای
عملگر Equal: وقتی True است که مقدار x و y با هم برابر باشد.
علمگر Identical: وقتی True است که مقدار و هم نوع x و y یکی باشد. عملگر =! و <> هر دو یک کار انجام میدهند
عملگر Not equal: برعکس عملگر Equal است.
عملگر Not identical: وقتی True است که مقدار دو متغیر یعنی x و y مساوی نباشد یا نوع دو متغیر یکسان نباشد.
بقیه عملگرهای مقایسهای در جدول پایین مشاهده میکنید که نیازی به توضیح نیست و کاملا عکسها گویا هستند.
عملگر منطقی (Logical Operators)
عملگر منطقی یکی از مهمترین علمگرها در زبانهای برنامه نویسی و PHP است ، این عملگرها به شما اجازه می دهند جریان یک برنامه را تغییر دهید و در دستورات شرطی بسیار مورد استفاده قرار می گیرد. عملگر منطقی به منظور ترکیب عبارات شرطی به کار میروند.
تشریح عملگرهای منطقی
- عملگر AND اگر هر دو یعنی x و y صحیح باشند ، عبارت $X and $y صحیح است توجه داشته باشید که اگر حتی یکی از متغیرها صحیح نباشد خروجی false می شود. (true به معنی صحیح یا درست بودن عبارت به کار میرود و False برعکس آن)
- عملگر OR اگر حداقل یکی از دو متغیر x یا y صحیح باشد نتیجه true است ، در غیر اینصورت false است.
- عملگر XOR اگر تنها x یا فقط y صحیح باشد ، مقدار true می شود. فقط یکی از متغیرها باید صحیح یا True باشد و هر دو اگر صحیح باشد یا اگر هر دو غلط (False) باشد عبارت نیز False است
- عملگر && همانند عملگر AND است.
- عملگر || همانند عملگر AND است.
- عملگر ! در مثال بالا توجه کنید که عبارت !$x نوشته شده و وقتی این عبارت صحیح است که متغیر x نیز false باشد.
عملگر رشته ای (String Operators)
PHP has two operators that are specially designed for strings.
عملگر | نام | مثال | نتیجه |
---|---|---|---|
. | Concatenation | $txt1 . $txt2 | Concatenation of $txt1 and $txt2 |
.= | Concatenation assignment | $txt1 .= $txt2 | Appends $txt2 to $txt1 |
مثال برای عملگر Concatenation
در مثال پایین دو متغیر داریم که با عملگر Concatenation این دو متغیر را الحاق کردیم.
$txt1 = "Hello"; $txt2 = $txt1 . "World" echo txt2; // output: "Hello World"
مثال برای عملگر Concatenation assignment
در مثال پایین دو متغیر داریم که با عملگر Concatenation assignment به شکل دیگر دو متغیر را الحاق کردیم
$txt1 = "Hello"; $txt2 = " world!"; $txt1 .= $txt2; echo txt1; // output: "Hello World"
عملگر آرایه (Array Operators)
عملگر | نام | مثال | نتیجه |
---|---|---|---|
+ | Union | $x + $y | Union of $x and $y |
== | Equality | $x == $y | Returns true if $x and $y have the same key/value pairs |
=== | Identity | $x === $y | Returns true if $x and $y have the same key/value pairs in the same order and of the same types |
!= | Inequality | $x != $y | Returns true if $x is not equal to $y |
<> | Inequality | $x <> $y | Returns true if $x is not equal to $y |
!== | Non-identity | $x !== $y | Returns true if $x is not identical to $y |
عملگرهای آرایه همان مفهوم عملگرهای مقایسه ای را دارند، میتوانید دوباره در این لینک بخوانید.
تقدم عملگرها
تقدم عملگرها یا اولیتبندی عملگرها مشخص میکند که در محاسباتی که بیش از دو عملوند (operand) دارند ابتدا کدام عملگر اثرش را اعمال کند. عملگرها در PHP در محاسبات دارای حق تقدم هستند. به مثال زیر توجه کنید:
$y = 3 + 1 * 4 / 2;
اگر حق تقدم عملگرها را رعایت نکنیم و عبارت بالا را از سمت چپ به راست انجام دهیم نتیجه 8 خواهد شد. اما PHP با توجه به تقدم عملگرها، محاسبات را انجام می دهد، یعنی عمل ضرب و تقسیم نسبت به جمع و تفریق تقدم دارند. پس در مثال بالا ابتدا عدد 1 ضربدر 4 و سپس نتیجه آنها تقسیم بر 2 می شود که نتیجه 2 به دست می آید.در آخر عدد 2 با 1 جمع می شود و عدد 3 حاصل می شود. توجه کردید که اگر ما بدون رعایت حق تقدم محاسبات را انجام دهیم مقدار ۸ به دست میآید و اگر حق تقدم را رعایت کنیم مقدار ۳ را به دست میاوریم، در جدول زیر تقدم برخی از عملگرهای PHP آمده است :
عملگرد | نام |
---|---|
new | ایجاد یک نمونه شی (شی گرائیی) |
( ) | پرانتز |
[ ] | شاخص گذاری |
! ++ — | عملگر نه! افزایشی و کاهشی |
@ | توقف خطا |
/ * % | ضرب و تقسیم و باقیمانده |
+ – . | جمع و تفریق و عملگر الحاقی |
< <= >= > | کوچکتر مساوی ، بزرگتر مساوی ، |
== != === <> | نامساوی و… |
|| && | عملگر AND و OR |
?: | عملگر سه گانه |
AND XOR OR | عملگرهای منطقی |
, | جدا کننده |
ممکن است بعضی از این عملگرهای بالا را متوجه نشید و نخوانده باشید، در جلسات آینده به آنها میپردازیم.
از پرانتز برای ایجاد خوانایی در تقدم عملگرها و انجام محاسبات زیاد استفاده میشود:
به مثال زیر توجه کنید و اول سعی کنید خودتان مورد بررسی قرار دهید سپس ادامه مقاله را مطالعه کنید:
$x = ( 1 + 2 ) * ( 3 / 4 ) % ( 4 - ( 3 * 5 ));
در مثال فوق ابتدا عباراتی که داخل پرانتز هستند مورد مقحاسبه قرار میگیرند. توجه داشته باشید که در پرانتز سوم در این عبارت ابتدا مقدار داخلیتر پرانتز محاسبه میشود یعنی مقدار 3 ضربدر 5 شده و سپس از 4 کم می شود. اگر دو یا چند عملگر با حق تقدم یکسان موجود باشد ابتدا باید هر کدام از عملگرها را که در ابتدای عبارت یعنی سمت چپ تر عبارت می آیند محاسبه شود. به عنوان مثال :
$x = 5 * 4 + 12 / 4;
هر دو عملگر * و / دارای حق تقدم برابریاند. پس شما باید از سمت چپ به راست عملگرها را در عملوندها محاسبه کنید. یعنی در ابتدا 5 را ضربدر 4 میکنیم و سپس عدد 12 را بر 4 تقسیم میکنیم. در آخر، نتیجه دو عبارت را جمع کرده و در متغیر x$ قرار میدهیم.
این جلسه نسبتا طولانی هم به پایان رسید خداقوت به شما برنامه نویسان عزیز 🙂 اگر سوالی داشتید حتما در دیدگاه های این پست از میزفا مطرح کنید. در این دوره آموزش پی اچ پی با ما همراه باشید و در آینده نزدیک درخواهید یافت که یادگیری PHP چقدر آسان هست و چه مزیتهایی میتواند در کسبوکار شما داشته باشد.
2 پاسخ
مثال برای عملگر Concatenation assignment اشتباه نوشتید:
$txt1 = “Hello”;
$txt2 = ” world!”;
$txt1 .= $txt2;
echo $txt1;
تشکر از شما. اصلاح شد.