آشنایی با عملگرها در php

تاریخ: 28 آذر 1399

عملگر یا 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 &amp; 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 &amp; 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 &gt; $y); //output: false
var_dump($y &gt; $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

دیدگاهتان را بنویسید

طراحی افزونه وردپرس