عملگرها در PHP
در این بخش میخواهیم با عملگرها در PHP آشنا شویم. هر یک از این عملگرها در پی اچ پی دارای دستورهای مخصوص خود هستند. میتوان آنها را به دستههای زیر تقسیم بندی کرد.
- حسابی
- انتسابی
- رشتهای
- مقایسهای
- منطقی
- آرایه
عملگرهای حسابی درPHP
عملگرحسابی یا ریاضی در پی اچ پی شامل عملیات جمع، تفریق، تقسیم، ضرب و قدر مطلق باقیمانده تقسیم است. در جدول زیر با روش نمایش این عملگرها در پی اچ پی آشنا میشویم.
|
نتیجه |
مثال |
نام |
عملیات |
|
جمع $x و$y |
$x+$y |
جمع |
+ |
|
تفریق$x و $y |
$x-$y |
تفریق |
– |
|
ضرب $x و$y |
$x*$y |
ضرب |
* |
|
تقسیم $x و y$ |
$x/$y |
تقسیم |
/ |
|
باقیمانده تقسیم $x و $y |
$x%$y |
قدر مطلق |
% |
مثال زیر نتایج مختلف عملگرهای حسابی را نشان میدهد.
<!DOCTYPE html>
<html>
<body>
<?php
$x=10;
$y=6;
echo ($x + $y);
echo "<br>";
echo ($x - $y);
echo "<br>";
echo ($x * $y);
echo "<br>";
echo ($x / $y);
echo "<br>";
echo ($x % $y);
?>
</body>
</html>
مثال بالا دستور میدهد اول x و y را با هم جمع و در خط بعدی x را از y کم، در ادامه، x را در y ضرب و در آخر قدر مطلق باقیمانده تقسیم x و y را چاپ کند
خروجی به صورت زیر میباشد:
۱۶
۴
۶۰
۱٫۶۶۶۶۶۶۶۶۶۶۶۶۷
۴
عملگرهای انتسابی در PHP
برای اختصاص دادن یک مقدار به یک متغیر از عملگر Assignment یا انتسابی استفاده میشود. پایه این عملیات در پی اچ پی، علامت “=” است.
در جدول زیر با این نماد این عملگرها در PHP و نحوه انجام دستور، آشنا شوید.
|
توضیحات |
مثال |
انتساب |
|
عملگر سمت چپ ارزشی برابر با آنچه که سمت راست بیان میشود، دارد |
x=y |
x=y |
|
عمل جمع |
x=x+y |
x+=y |
|
عمل تفریق |
x=x-y |
x-=y |
|
عمل ضرب |
x=x*y |
x*=y |
|
عمل تقسیم |
x=X/y |
X/=y |
|
قدر مطلق |
x=x%y |
X%=y |
در یک مثال عملکرد، عملگرهای انتسابی را مشاهده کنید.
<!DOCTYPE html>
<html>
<body>
<?php
$x=10;
echo $x;
echo "<br>";
$y=20;
$y += 100;
echo $y;
echo "<br>";
$z=50;
$z -= 25;
echo $z;
echo "<br>";
$i=5;
$i *= 6;
echo $i;
echo "<br>";
$j=10;
$j /= 5;
echo $j;
echo "<br>";
$k=15;
$k %= 4;
echo $k;
?>
</body>
</html>
در این مثال روش عملگرهای Assignment که در جدول بالا بیان کردیم را به ترتیب مشاهده میکنید. خروجی این دستور به صورت یک سری اعداد هستند که از عملیات تساوی، ضرب، تقسیم، جمع، تفریق، و قدر مطلق باقیمانده بدست آمده اند.
۱۰
۱۲۰
۲۵
۳۰
۲ ۳
عملگرهای رشتهای در PHP
این عملگرها در PHP به دو دسته تقسیم میشوند که هر دو وظیفهی کنار هم قرار دادن متنها و تشکیل یک جمله را دارند. این متغیرهای رشته ای هر کدام در یک خط به صورت جداگانه تعریف شده اند اما در خروجی نیازمند قرار گرفتن آنها در کنار هم و به صورت یک جمله هستیم. در حقیقت با استفاده از ( . ) رشته های را در PHP ادغام میکنند.
جدول زیر این عملگرهای رشتهای را معرفی مینماید.
|
عملگر |
نام |
مثال |
نتیجه |
|
. |
الحاق |
$txt1 = “Hello” $txt2 = $txt1 . “world!” |
متن ۲ شامل !Hello world میشود |
|
.= |
مامور الحاق |
$txt1 = “Hello” $txt1 .= ” world!” |
متن۱شامل !Hello world میشود |
هر دو عملگر یک خروجی را به همراه دارد اما یک تفاوت با هم دارند. برای عملگر اول باید دو تابع رشتهای با نامهای جداگانه تعریف کنیم.
یک مثال برای این عملگرها در PHP مشاهده کنید.
<!DOCTYPE html>
<html>
<body>
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // outputs Hello world!
echo "<br>";
$x="Hello";
$x .= " world!";
echo $x; // outputs Hello world!
?>
</body>
</html>
خروجی دستور این پی اچ پی، همانند آنچه که در جدول توضیحات بیان شد، بدست میآید.
Hello world!
Hello world!
در PHP میتوان رشته ها را با اعداد نیز ترکیب کرد:
$num=5;
$x="Test".$num;
عملگر کاهش یا افزایش در PHP
این عملگرها در PHP با افزایش یا کاهش یک واحد، در مقدار متغیرها، تغییر ایجاد میکنند. گاه به این صورت که مقدار متغیر را افزایش یا کاهش دهد و سپس نمایش دهد و یا همان مقدار را نمایش می دهد و در صورتی که متغیر را دوباره بخوانیم، افزایش یا کاهش اعمال شده را ارسال میکند. در جدول زیر با نماد این عملگرها و نوع کار آنها بیشتر آشنا میشویم.
|
عملگر |
نام |
توضیحات |
|
++$x |
قبل از افزایش |
افزایش x و سپس برگرداندن آن |
|
$x++ |
ارسال افزایش |
برگرداندن x و سپس افزایش x |
|
– -$x |
قبل از کاهش |
کاهش y و سپس برگداندن آن |
|
$x- – |
ارسال کاهش |
برگرداندن y و سپس کاهش آن |
یک مثال برای درک بهتر تفاوت بین روشهای افزایش با هم و روشهای کاهش با هم مشاهده کنید.
!DOCTYPE html>
<html>
<body>
<?php
$x=10;
echo ++$x;
echo "<br>";
$y=10;
echo $y++;
echo "<br>";
$z=5;
echo --$z;
echo "<br>";
$i=5;
echo $i--;
?>
</body>
</html>
خروجی دستور بالا براساس قوانین گفته شده به صورت زیر است:
۱۱
۱۰
۴
۵
در دستور اول نمایش x بعد از یک واحد افزایش خواسته شده است، در دستور دوم نمایش x و ارسال یک واحد افزایش خواسته شده، اگر تابع یک بار دیگر x را با این دستور صدا میزد مقدار متغیر با آن یک واحد افزایش ارسال شده، نمایش داده میشد. ( این مثال تنها یک بار x برای دستور ++x$ صدا زده شده است) و در دستور سوم و چهارم همین روند برای یک واحد کاهش اتفاق افتاده است.
عملگرهای مقایسه ای در PHP
عملگرهای مقایسهای در پی اچ پی، برای مقایسه ی دومقدار استفاده میشوند. این مقدارها میتوانند از جنس عدد و متن ( رشته ای) باشند.
در جدول زیر نماد این عملگرها در PHP و کاربرد آنها آشنا میشوید.
|
عملگر |
نام |
مثال |
نتیجه |
|
== |
مساوی |
$x == $y |
اگر x برابر با y باشد درست است |
|
=== |
یکسان |
$x === $y |
اگر x برابر با y و از یک نوع باشد درست است |
|
=! |
نابرابر |
$x != $y |
اگر x با y برابر نباشد درست است |
|
<> |
نا برابر |
$x <> $y |
اگر x با y برابر نباشد درست است |
|
==! |
غیر یکسان |
$x !== $y |
اگر x باy برابر یا از یک نوع نباشند درست است |
|
< |
بزرگتر |
$x > $y |
اگر x از y بزرگتر باشد درست است |
|
> |
کوچک تر |
$x < $y |
اگر x از y کوچکتر باشد درست است |
|
=< |
بزرگتر یا مساوی |
$x >= $y |
اگر x بزرگتر یا مساوی y باشد درست است |
|
=> |
کوچکتر یا مساوی |
$x <= $y |
اگر x کوچکتر یا مساوی y باشد درست است |
برای درک بهتر از این عملگرها مثال زیر را مشاهده کنید.
<!DOCTYPE html>
<html>
<body>
<?php
$x=100;
$y="100";
var_dump($x == $y); // returns true because values are equal
echo "<br>";
var_dump($x === $y); // returns false because types are not equal
echo "<br>";
var_dump($x != $y); // returns false because values are equal
echo "<br>";
var_dump($x !== $y); // returns true because types are not equal
echo "<br>";
$a=50;
$b=90;
var_dump($a > $b);
echo "<br>";
var_dump($a < $b);
?>
</body>
</html>
در این مثال یک متغیر x و یک متغیر y معرفی شدهاند که از نظر مقدار با هم برابر هستند ولی بخاطر قرار گرفتن متغیر y در بین علامت ” ” نوع آن با نوع متغیر x متفاوت شده است.
خروجی دستور بالا به صورت زیر است:
bool(true)
bool(false)
bool(false)
bool(true)
bool(false)
bool(true)
همان طور که در مثالهای قبل گفتیم دستور( )var_dump نوع داده را مشخص میکند. در این جا دادهها از نوع بولین هستند و تنها درست یا غلط بودن ارزش متغیر را مشخص میکند، بنابراین خروجی تنها با مشخص کردن درستی یا نادرستی دستور بیان میشود.
عملگرهای منطقی در PHP
عملگرهای منطقی and، or، xor، &&، ||، !، در PHP بین دو متغیر قرارمیگیرند و شرایط درست یا نادرست بودن آن متغیرها را در PHP بیان میکند. لازم به ذکر است که عملگرهای && و || در اولویت بالاتری هستند. جدول زیر خروجی این متغیرها را در صورت قرار گرفتن عملگرهای پی اچ پی بین آنها بیان میکند
|
عملگر |
نام |
مثال |
نتیجه |
|
and |
و |
$x and $y |
اگر x و y درست باشد، درست است |
|
Or |
یا |
$x or $y |
اگر x یا y درست باشد، درست است |
|
Xor |
X یا |
$x xor $y |
اگر یکی از متغیرهای x یا y درست باشد درست است |
|
&& |
و |
$x && $y |
اگر x و y درست باشد، درست است |
|
|| |
یا |
$x || $y |
اگر x یا y درست باشد، درست است |
|
! |
هیچ |
!$x |
اگر x درست نباشد، درست است |
عملگرهای آرایه در PHP
عملگرهای آرایه در پی اچ پی برای مقایسه داده ها از جنس آرایه استفاده میشوند. در جدول زیر با نماد و نوع عملکرد این عملگرها در PHP آشنا میشوید.
|
عملگر |
نام |
مثال |
نتیجه |
|
+ |
اتصال |
$x + $y |
اتصال x و y |
|
== |
تساوی |
$x == $y |
اگر x و y یک مقدار داشته باشد، درست است |
|
=== |
یکسان |
$x === $y |
اگر x وy دارای یک مقدار و از یک نوع باشند درست است. |
|
!= |
نا برابری |
$x != $y |
اگر x و y با هم برابر نباشند،درست است |
|
<> |
نا برابری |
$x <> $y |
اگر x و y با هم برابر نباشند،درست است |
|
!== |
غیر یکسان |
$x !== $y |
اگر x با y یکسان نباشد، درست است |
برای درک بهتر عملکر این نماد ها یک مثال را بررسی کنیم.
<!DOCTYPE html>
<html>
<body>
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // union of $x and $y
var_dump($z);
echo "<br>";
var_dump($x == $y);
echo "<br>";
var_dump($x === $y);
echo "<br>";
var_dump($x != $y);
echo "<br>";
var_dump($x <> $y);
echo "<br>";
var_dump($x !== $y);
?>
</body>
<span style="font-family: 'Courier New',Verdana,Arial,Helvetica; font-size: small;"></html></span>
خروجی این دستور به صورت زیر است:
array(4) { [“a”]=> string(3) “red” [“b”]=> string(5) “green” [“c”]=> string(4) “blue” [“d”]=> string(6) “yellow” }
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
در دستور اول تنها خواسته شده است، آرایه های x و y در کنار هم نمایش داده شود. در دستور دوم به دلیل این که y و x یک مقدار را دارا نمیباشند نادرست اعلام شده است. در دستور سوم هم با این که متغیر x و y هر دو آرایه و ازجنس رشته ای هستند، اما چون مقادیر آنها یکسان نیست، نادرست اعلام شده است. در دستور سوم، چهارم و پنجم به دلیل یکسان و برابر نبودن متغیر x و y درست اعلام شده است.


