آشنایی با عملگرها در php
عملگر یا operator در operation ها یا expression ها استفاده می شوند. مثلا برای محاسبات ریاضی و یا ایجاد یک عبارت شرطی.
عملگرها در php به 8 بخش قابل تقسیم اند:
- Arithmetic operators
- Assignment operators
- Comparison operators
- Increment/Decrement operators
- Logical operators
- String operators
- Array operators
- Conditional assignment operators
عملگرهای ریاضی یا Arithmetic operators
عملگرهای ریاضی برای انجام محاسبات پایه ریاضی استفاده می شوند. مثل عملیات جمع دو عدد و یا تفریق آن دو.
عملگر به علاوه، + یا Addition : برای جمع کردن دو عدد از این عملگر استفاده می شود:
echo 2+3; //output: 5 $x = 4; $y = 5; echo $x+$y; //output: 9
عملگر تفریق، – یا Subtraction : برای تفریق دو عدد از این عملگر استفاده می شود:
echo 3-2; //output: 1 $x = 4; $y = 8; echo $x-$y; //output: -4
عملگر ضرب، * یا Multiplication : برای ضرب دو عدد از این عملگر استفاده می شود:
echo 2*3; //output: 6 $x = 4; $y = 5; echo $x*$y; //output: 20
عملگر تقسیم، / یا Division : برای تقسیم کردن یک عدد بر عدد دیگر از این عملگر استفاده می شود:
echo 6/3; //output: 2 $x = 20; $y = 5; echo $x/$y; //output: 4
عملگر باقی مانده تقسیم، % یا Modulus : برای بدست آوردن باقی مانده تقسیم یک عدد بر عدد دیگر از این عملگر استفاده می شود:
echo 5%3; //output: 2 $x = 7; $y = 2; echo $x%$y; //output: 1
عملگر توان، ** یا Exponentiation : برای بدست آوردن توان یک عدد از این عملگر استفاده می شود:
echo 2**3; //output: 8 $x = 3; $y = 2; echo $x**$y; //output: 9
عملگرهای انتساب یا Assignment operators
زمانی که می خواهیم یک مقدار را به یک متغیر نسبت دهیم، می توانیم از عملگرهای انتساب استفاده کنیم.
عملگر مساوی یا = : برای نسبت دادن و یا قراردادن یک مقدار در یک متغیر، از این عملگر استفاده می کنیم:
$x = 4; $z = $x;
عملگر جمع مساوی یا =+ : برای اینکه حاصل جمع دو طرف را در طرف اول بریزیم از این عملگر استفاده می کنیم:
$x=1; $y=2; $x+=$y; echo $x; //output: 3
در واقع x+=$y$ حالت کوتاه شده x=$x+$y$ می باشد.
عملگر تفریق مساوی یا =- : برای اینکه حاصل تفریق دو طرف را در طرف اول بریزیم از این عملگر استفاده می کنیم:
$x = 5; $y = 3; $x -= $y; echo $x; //output: 2
در واقع x-=$y$ حالت کوتاه شده x=$x-$y$ می باشد.
عملگر ضرب مساوی یا =* : برای اینکه حاصل ضرب دو طرف را در طرف اول بریزیم از این عملگر استفاده می کنیم:
$x = 2; $y = 3; $x *= $y; echo $x; //output: 6
در واقع x*=$y$ حالت کوتاه شده x=$x*$y$ می باشد.
عملگر تقسیم مساوی یا =/ : برای اینکه حاصل تقسیم دو طرف را در طرف اول بریزیم از این عملگر استفاده می کنیم:
$x = 6; $y = 3; $x /= $y; echo $x; //output: 2
در واقع x/=$y$ حالت کوتاه شده x=$x/$y$ می باشد.
عملگر باقی مانده تقسیم مساوی یا =% : برای اینکه باقی مانده تقسیم دو طرف را در طرف اول بریزیم از این عملگر استفاده می کنیم:
$x = 7; $y = 3; $x %= $y; echo $x; //output: 1
در واقع x%=$y$ حالت کوتاه شده x=$x%$y$ می باشد.
عملگرهای مقایسه ای یا Comparison operators
عملگرهای مقایسه ای عملگرهایی هستند که به وسیله آن ها دو عدد یا دو متغیر یا دو عبارت را با هم مقایسه می کنیم. این عملگرها در شرط ها بسیار کاربرد دارند. مثلا آیا 3<x$ است یا خیر.
عملگر مساوی مقداری یا == : با استفاده از این عملگر، چک می کنیم که آیا دو طرف از نظر مقداری برابر هستند یا خیر. (گرچه ممکن است از نظر نوع متفاوت باشند)
$x = 2; $y = 3; $z = '2'; value var_dump($x == $y); //output: false var_dump($x == $z); //output: true
همانطور که می بینیم، x$ و z$ از نظر نوع متفاوت اند چون اولی از نوع integer و دومی از نوع string می باشد. ولی از نظر مقداری با هم برابر می باشند چون مقدار هر دو 2 است.
عملگر مساوی مقداری و مساوی نوعی یا === : با استفاده از این عملگر، چک می کنیم که آیا دو طرف هم از نظر مقدار و هم از نظر نوع برابر هستند یا خیر.
$x = 2; $y = 3; $z = '2'; $m = 2; value & type var_dump($x === $y); //output: false var_dump($x === $z); //output: false var_dump($x === $m); //output: true
عملگر نامساوی مقداری یا =! : با استفاده از این عملگر، چک می کنیم که آیا دو طرف از نظر مقدار نامساوی هستند یا خیر. (گرچه ممکن است از نظر نوع برابر باشند.
$x = 2; $y = 3; $h = '3'; $z = '2'; $m = 2; !value var_dump($x != $h); //output: true : different in value & type var_dump($x != $y); //output: true : different in value var_dump($x != $z); //output: false : different in type var_dump($x != $m); //output: false
عملگر نامساوی مقداری یا <> : با استفاده از این عملگر، چک می کنیم که آیا دو طرف از نظر مقدار نامساوی هستند یا خیر. (گرچه ممکن است از نظر نوع برابر باشند.) مشابه عملگر =! .
$x = 2; $y = 3; $h = '3'; $z = '2'; $m = 2; !value var_dump($x <> $h); //output: true : different in value & type var_dump($x <> $y); //output: true : different in value var_dump($x <> $z); //output: false : different in type var_dump($x <> $m); //output: false
عملگر نامساوی مقداری یا نوعی یا ==! : با استفاده از این عملگر، چک می کنیم که آیا دو طرف از نظر مقدار و یا از نظر نوع نامساوی هستند یا خیر.
$x = 2; $y = 3; $h = '3'; $z = '2'; $m = 2; !value || !type var_dump($x !== $h); //output: true : different in value % type var_dump($x !== $y); //output: true : different in value var_dump($x !== $z); //output: true : different in type var_dump($x !== $m); //output: false
عملگر بزرگتر یا < : با استفاده از این عملگر، چک می کنیم که آیا طرف اول (راست) از طرف دوم (چپ) بزرگتر می باشد یا خیر.
$x = 1; $y = 2; var_dump($x > $y); //output: false var_dump($y > $x); //output: true
عملگر کوچکتر یا > : با استفاده از این عملگر، چک می کنیم که آیا طرف اول (راست) از طرف دوم (چپ) کوچکتر می باشد یا خیر.
$x = 1; $y = 2; var_dump($x < $y); //output: true var_dump($y < $x); //output: false
عملگر بزرگتر یا مساوی =< : با استفاده از این عملگر، چک می کنیم که آیا طرف اول (راست) از طرف دوم (چپ) بزرگتر و یا برابر آن می باشد یا خیر.
$x = 1; $y = 2; $z = 1; var_dump($x >= $y); //output: false var_dump($x >= $z); //output: true var_dump($y >= $z); //output: true
عملگر کوچکتر یا مساوی => : با استفاده از این عملگر، چک می کنیم که آیا طرف اول (راست) از طرف دوم (چپ) کوچکتر و یا برابر آن می باشد یا خیر.
$x = 1; $y = 2; $z = 1; var_dump($x <= $y); //output: true var_dump($x <= $z); //output: true var_dump($y <= $z); //output: false
عملگر <=> : این عملگر می تواند سه مقدار مختلف برگرداند. اگر طرف اول کوچکتر بود عدد -1 برمی گرداند. اگر دو طرف برابر بودند عدد 0 بر می گرداند و اگر طرف اول بزرگتر بود، عدد 1 بر می گرداند.
$x = 1; $y = 2; $z = 1; echo ($x <=> $z); //output: 0 echo ($y <=> $z); //output: 1
عملگرهای افزایشی کاهشی یا Increment/Decrement operators
زمانی که بخواهیم مقدار یک متغیر را یک واحد اضافه یا کم کنیم، از عملگرهای افزایشی کاهشی استفاده می کنیم:
عملگر پیش افزایشی، pre-increment : اگر بخواهیم یک مقدار به متغیر اضافه کنیم به صورتی که در همان statement لحاظ شود، کافیست عملگر ++ را قبل از نام متغیر اضافه نماییم:
$x = 1; echo ++$x; //output: 2 echo $x; //output: 2
عملگر پس افزایشی، post-increment : اگر بخواهیم یک مقدار به متغیر اضافه کنیم به صورتی که در همان statement لحاظ نشود و از statement بعدی تغییر یابد، کافیست عملگر ++ را بعد از نام متغیر اضافه نماییم:
$x = 1; echo $x++; //output: 1 echo $x; //output: 2
عملگر پیش کاهشی، pre-decrement : اگر بخواهیم یک مقدار از متغیر کم کنیم به صورتی که در همان statement لحاظ شود کافیست عملگر – – را قبل از نام متغیر اضافه نماییم:
$x = 3; echo --$x; //output: 2 echo $x; //output: 2
عملگر پس کاهشی، post-decrement : اگر بخواهیم یک مقدار از متغیر کم کنیم به صورتی که در همان statement لحاظ نشود و از statement بعدی تغییر یابد، کافیست عملگر – – را بعد از نام متغیر اضافه نماییم:
$x = 3; echo $x--; //output: 3 echo $x; //output: 2
عملگرهای منطقی یا Logical Operators
از عملگرهای منطقی نظیر && یا || بیشتر در عبارت های شرطی استفاده می شود.
عملگر منطقی “و” یا and : زمانی که بخواهیم بیش از یک شرط با هم درست باشد از این عملگر استفاده می کنیم. مثلا اگر شرط اول و شرط دوم هر دو وجود داشته باشد:
$x = 2; $y = false; if( $x < 3 and $y ) { echo 'Hello World'; //output: empty } if( $x > 1 and !$y ) { echo 'Hello World'; //output: Hello world }
عملگر منطقی “یا” یا or : زمانی که بخواهیم حداقل یک کدام از شرط ها درست باشد از این عملگر استفاده می کنیم:
$x = 2; $y = false; $z = '1'; if( $x < 3 or $y ) { echo 'first'; //output: first } if( $x > 3 or $y or $z < 2 ) { echo 'second'; //output: empty }
عملگر منطقی xor : زمانی که بخواهیم حداقل یکی از شرط ها درست باشد ولی همه درست نباشد یا همه درست نباشد و همه هم غلط نباشد، از این عملگر استفاده می کنیم:
$x = 2; $y = false; $z = '1'; if( $x < 3 xor $y ) { echo 'first'; //output: first } if( $x > 3 xor $y ) { echo 'second'; //output: empty } if( $x < 3 xor !$y ) { echo 'third'; //output: empty } if( $x < 3 xor !$y xor $z == 1 ) { echo 'fourth'; //output: empty }
عملگر منطقی “و” یا && : زمانی که بخواهیم بیش از یک شرط با هم درست باشد از این عملگر استفاده می کنیم. مثلا اگر شرط اول و شرط دوم هر دو وجود داشته باشد:
$x = 2; $y = false; $z = '1'; if( $x < 3 && $y ) { echo 'first'; //output: empty } if( $x > 1 && !$y ) { echo 'second'; //output: second }
عملگر منطقی “یا” یا || : زمانی که بخواهیم حداقل یک کدام از شرط ها درست باشد از این عملگر استفاده می کنیم:
$x = 2; $y = false; $z = '1'; if( $x > 1 || $y ) { echo 'first'; //output: empty } if( $x < 1 || $y ) { echo 'second'; //output: second }
عملگر معکوس یا ! : اگر بخواهیم معکوس یک عبارت درست یا غلط را ایجاد کنیم از عملگر ! استفاده می کنیم: (معکوس درست، غلط می شود و معکوس غلط، درست می شود)
$x = true; if($x) { echo 'first'; //output: first } if(!$x) { echo 'second'; //output: empty }
عملگرهای رشته ای یا String operators
این عملگرها برای دستورات رشته ای استفاده می شوند. مثلا جفت کردن دو رشته به هم:
عملگر نقطه یا “.” : برای جفت کردن دو رشته به هم از عملگر نقطه استفاده می کنیم:
$x = 'Hello'; $y = ' World'; echo $x.$y; //output: Hello World
عملگر نقطه مساوی یا “=.” : برای جفت کردن دو رشته به هم طوری که حاصل آن در طرف اول قرار گیرد، از عملگر نقطه مساوی استفاده می کنیم:
$x = 'Hello'; $y = ' World'; $x.=$y; echo $x;//output: Hello World
عملگرهای آرایه یا Array Operators
این عملگرها برای شرط هایی که عملوند آن ها آرایه باشد کاربرد دارند.
عملگر + : این عملگر با توجه به کلید آرایه ها عمل می کند. بدین صورت که اگر کلید دو المان متناظر(دارای ایندکس مشابه) یکسان باشد، طرف راست را بر می گرداند و اگر آرایه دوم دارای المان ها با کلیدهای متفاوت باشند، آن المان ها را به آرایه اول ملحق می کند.
$x = [1,2,3]; $y = [4,5,6]; print_r($x+$y); //output: Array ( [0] => 1 [1] => 2 [2] => 3 ) $x = ['one', 'two', 'foo' => 'bar']; $y = ['three', 'four', 'five', 'foo' => 'baz']; print_r($x+$y); //output: Array ( [0] => one [1] => two [foo] => bar [2] => five )
عملگر مساوی مقداری یا == : این عملگر زمانی درست است که 1. مقدار المان های متناظر (و نه لزوما نوع آن ها) و 2.تعداد المان های دو آرایه دقیقا یکسان باشند.
$x = [1,2,3]; $y = [1,2,'3']; var_dump($x==$y); //output: true $x = [1,2,3]; $y = [1,2,'3', 4]; var_dump($x==$y); //output: false
عملگر مساوی مقداری و نوعی یا === : این عملگر زمانی درست است که 1. مقدار المان های متناظر و نوع آنها و 2.تعداد المان های دو آرایه دقیقا یکسان باشند.
$x = [1,2,3]; $y = [1,2,'3']; var_dump($x===$y); //output: false $x = [1,2,3]; $y = [1,2,'3', 4]; var_dump($x===$y); //output: false $x = [1,2,3]; $y = [1,2,3]; var_dump($x===$y); //output: true
عملگر نامساوی مقداری یا =! : این عملگر زمانی درست است که یا مقدار المان های متناظر دو آرایه یکسان نباشد و یا تعداد المان های با هم اختلاف داشته باشد.
$x = [1,2,3]; $y = [1,2,'4']; var_dump($x!=$y); //output: false $x = [1,2,3]; $y = [1,2,'3', 4]; var_dump($x!=$y); //output: false $x = [1,2,3]; $y = [1,2,'3']; var_dump($x!=$y); //output: false
عملگر نامساوی مقداری یا <> : این عملگر زمانی درست است که یا مقدار المان های متناظر دو آرایه یکسان نباشد و یا تعداد المان های با هم اختلاف داشته باشد.
$x = [1,2,3]; $y = [1,2,'4']; var_dump($x<>$y); //output: false $x = [1,2,3]; $y = [1,2,'3', 4]; var_dump($x<>$y); //output: false $x = [1,2,3]; $y = [1,2,'3']; var_dump($x<>$y); //output: false
عملگر نامساوی مقداری و یا نوعی یا ==! : این عملگر زمانی درست است که یا مقدار المان های متناظر دو آرایه یکسان نباشد یا اگر مقدار المان های متناظر دو آرایه یکسان بود، نوع آن ها برابر نباشد و یا تعداد المان های با هم اختلاف داشته باشد.
$x = [1,2,3]; $y = [1,2,'4']; var_dump($x!==$y); //output: true $x = [1,2,3]; $y = [1,2,'3']; var_dump($x!==$y); //output: true $x = [1,2,3]; $y = [1,2,3,5]; var_dump($x!==$y); //output: true $x = [1,2,3]; $y = [1,2,3]; var_dump($x!==$y); //output: false
عملگرهای انتساب شرطی یا Conditional Assignment Operators
این عملگرها زمانی استفاده می شوند که بخواهیم تحت یک شرایط خاص، یک مقدار را به یک متغیر لحاظ کنیم. (یا یک دستور را تحت شرایطی اجرا کنیم)
عملگر ternary opertor یا : ? : این عملگر، حالت کوتاه شده و خلاصه دستور if else می باشد و برای عبارت هایی که یک خطی هستند کاربرد دارد:
echo (1===2) ? 'First section' : 'Second section';
اگر شرط موجود صحیح بود، دستور بخش اول اجرا می شود و اگر غلط بود، دستور بخش دوم اجرا می شود.
همچنین با این دستور می توانیم مقداری را تحت یک شرط به یک متغیر اعمال کنیم:
$x = (1 > 2) ? 2 : 3; echo $x; //output: 3
عملگر ?? : این عملگر بدین صورت استفاده می شود که بیش از یک مقدار را به یک متغیر بخواهیم نسبت دهیم طوری که اگر اولی موجود بود همان نسبت داده می شود و اگر نبود مقدار دوم نسبت داده می شود.
$x = $_GET['name'] ?? $_GET['family'] ?? 123; echo $x; //output:123
آموزش بعدی >> آشنایی با دستور شرطی if else در php