در این درس با عملگرهای PHP آشنا می شویم. تمام اپراتورها و حوزه های استفاده از آنها را در PHP به طور کامل و با ذکر مثال توضیح دادیم.

به کاراکترها یا کلماتی که بین یک یا چند مقدار عملیات انجام می دهند، عملگر یا عملگر می گویند. کلمه انگلیسی اپراتور عملگر است و در ترکی به اپراتور معروف است. اما برخی منابع از آن به عنوان اپراتور یاد می کنند. هر دو معنای یکسانی دارند.

اپراتورهای PHP

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

عملگرهای محاسباتی PHP با مقادیر عددی برای انجام عملیات حسابی رایج مانند جمع، تفریق، ضرب استفاده می شوند.

اپراتورناممثال
+اضافه شدن$a + $b
-تفریق$a - $b
*ضرب$a * $b
/تقسیم$a / $b
%مدول (مدول)$a % $b

مثال‌های عملگر حسابی PHP

با عملگر جمع 2 مقدار اضافه می کنیم. در این مثال از عملگر افزودن php استفاده کردیم:

echo 2+4; // Çıktı: 6

با عملگر تفریق یک مقدار را از مقدار دیگر کم می کنیم. در این مثال از عملگر تفریق php استفاده کردیم:

echo 5-2; // Çıktı: 3

با عملگر تقسیم یک مقدار را بر مقدار دیگر تقسیم می کنیم. در این مثال از عملگر php split استفاده کردیم:

echo 6/2; // Çıktı: 3

با عملگر ضرب یک مقدار را در مقدار دیگر ضرب می کنیم. در این مثال از عملگر ضرب php استفاده کردیم:

echo 5*2; // Çıktı: 10

با عملگر مدول، وقتی یک مقدار بر مقدار دیگری تقسیم می شود، باقیمانده را پیدا می کنیم. در این مثال از عملگر ماژول php استفاده کردیم:

echo 7%2; // Çıktı: 1

اپراتورهای تعیین PHP

عملگرهای انتساب PHP برای تخصیص مقادیر استفاده می شوند.

اپراتورناممثال
=تکلیف$a = $b
+=جمع آوری و دور انداختن$a +=4
-=تفریق و اختصاص دهید$a -=4
*=تقسیم و اختصاص دهید$a /=4
*=ضرب و تخصیص$a *=4
%=ماژول و اختصاص دهید$a%=4

مثال‌های اپراتور تعیین PHP

ما مقدار سمت راست را به عملوند چپ با عملگر مساوی نسبت دادیم.

$a = 20;

مجموع متغیرهای چپ و راست را با عملگر add and assign به متغیر اختصاص دادیم.

$a = 10;
$b = 15; 
$a += $b; // $a değişkeninin değeri 25
// Üst satırdaki ifade ile $a = $a + $b ifadesi aynı.

با عملگر تفریق و انتساب، نتیجه تفریق مقدار متغیر سمت راست را از مقدار متغیر سمت چپ به متغیر اختصاص دادیم.

$a = 20;
$b = 10; 
$a -= $b; // $a değişkeninin değeri 10
// Üst satırdaki ifade ile $a = $a - $b ifadesi aynı.

با عملگر تقسیم و انتساب، ما به متغیر نتیجه می دهیم که چند برابر مقدار متغیر سمت چپ را می توان بر مقدار متغیر سمت راست تقسیم کرد.

$a = 12;
$b = 4; 
$a /= $b; // $a değişkeninin değeri 3
// Üst satırdaki ifade ile $a = $a / $b ifadesi aynı.

با عملگر ضرب و انتساب، نتیجه حاصل از ضرب دو مقدار متغیر را به متغیر اختصاص دادیم.

$a = 2;
$b = 2; 
$a *= $b; // $a değişkeninin değeri 4
// Üst satırdaki ifade ile $a = $a * $b ifadesi aynı.

با استفاده از ماژول و عملگرهای تخصیص، زمانی که مقدار متغیر سمت چپ بر مقدار متغیر سمت راست تقسیم شد، باقیمانده متغیر را به آن اختصاص دادیم.

$a = 8;
$b = 3; 
$a %= $b; // $a değişkeninin değeri 2
// Üst satırdaki ifade ile $a = $a % $b ifadesi aynı.

اپراتورهای مقایسه PHP

عملگرهای مقایسه PHP برای مقایسه دو مقدار استفاده می شوند.

اپراتورناممثال
==برابر$a == $b
===معادل$a === $b
!=مساوی نیست (برابر نیست)$a != $b
!==یکسان نیست$a !== $b
<>مساوی نیست (برابر نیست)$a <> $b
>بزرگتر از$a > $b
<کمتر از$a < $b
>=بزرگتر یا مساوی با$a >= $b
<=کمتر یا مساوی با (کمتر یا مساوی)$a <= $b

مثال‌های اپراتور مقایسه PHP

ما برابری دو مقدار را با عملگر مساوی بررسی کردیم.

$a = 4;
$b = 2; 
if ($a == $b) {
    echo "A, B'ye eşittir";
} else {
    echo "A, B'ye eşit değildir";
}
// Çıktı: A, B'ye eşit değildir

ما معادل بودن دو مقدار را با عملگر یکسان بررسی کردیم.

$a = 4;
$b = '4'; 
if ($a === $b) {
    echo "A, B'ye denktir";
} else {
    echo "A, B'ye denk değildir";
}
// Çıktı: A, B'ye denk değildir

ما نابرابری دو مقدار را با عملگر غیر برابر بررسی کردیم.

$a = 4;
$b = 3; 
if ($a != $b) {
    echo "A, B'ye eşit değildir";
} else {
    echo "A, B'ye eşittir";
}
// Çıktı: A, B'ye eşit değildir

ما نابرابری دو مقدار را با عملگر غیر یکسان بررسی کردیم.

$a = 4;
$b = '4'; 
if ($a !== $b) {
    echo "A, B'ye denk değildir";
} else {
    echo "A, B'ye denktir";
}
// Çıktı: A, B'ye denk değildir

ما نابرابری دو مقدار را با عملگر غیر برابر بررسی کردیم.

$a = 4;
$b = 2; 
if ($a <> $b) {
    echo "A, B'ye eşit değildir";
} else {
    echo "A, B'ye eşittir";
}
// Çıktı: A, B'ye eşit değildir

ما بررسی کردیم که آیا مقدار سمت چپ با عملگر بزرگتر از مقدار سمت راست بیشتر است یا خیر.

$a = 4;
$b = 2; 
if ($a > $b) {
    echo "A, B'den daha büyüktür";
} else {
        echo "A, B'den daha büyük değildir";
}
// Çıktı: A, B'den daha büyüktür

ما بررسی کردیم که آیا مقدار سمت چپ با عملگر کمتر از مقدار سمت راست کوچکتر است یا خیر.

$a = 2;
$b = 4; 
if ($a &lt $b) {
    echo "A, B'den daha küçüktür";
} else {
        echo "A, B'den daha küçük değildir";
}
// Çıktı: A, B'den daha küçüktür

ما بررسی کردیم که آیا مقدار سمت چپ بزرگتر یا مساوی با مقدار سمت راست با عملگر بزرگتر یا مساوی است.

$a = 4;
$b = 2; 
if ($a >= $b) {
    echo "A, B'den daha büyüktür veya eşittir";
} else {
        echo "A, B'den daha büyük veya eşit değildir";
}
// Çıktı: A, B'den daha büyüktür veya eşittir

ما بررسی کردیم که آیا مقدار سمت چپ کمتر یا برابر با مقدار سمت راست با عملگر کمتر یا مساوی است.

$a = 2;
$b = 4; 
if ($a <= $b) {
    echo "A, B'den daha küçüktür veya eşittir";
} else {
        echo "A, B'den daha küçük veya eşit değildir";
}
// Çıktı: A, B'den daha küçüktür veya eşittir

PHP اپراتورهای افزایش/کاهش

عملگرهای افزایشی PHP برای افزایش مقدار یک متغیر استفاده می شود. عملگرهای کاهش PHP برای کاهش مقدار یک متغیر استفاده می شوند.

اپراتورنام
++$iافزایش قبل (قبل از افزایش)
$i++پس از افزایش (پس از افزایش)
--$iکاهش قبل (قبل از کاهش)
$i--پس از کاهش (پس از کاهش)

مثال‌های عملگر کاهش افزایش PHP

عملگر pre-increment ابتدا مقدار متغیر $i را افزایش می دهد و سپس متغیر $i را برمی گرداند.

$i = 10;  
echo ++$i; // Çıktı: 11

سپس عملگر post-increment متغیر $i را برمی گرداند، سپس مقدار متغیر $i را افزایش می دهد.

$i = 10;  
echo $i++; // Çıktı: 10

عملگر pre-decrement ابتدا مقدار متغیر $i را کاهش می دهد و سپس متغیر $i را برمی گرداند.

$i = 10;  
echo --$i; // Çıktı: 9

سپس عملگر post-decrement متغیر $i را برمی گرداند و سپس مقدار متغیر $i را کاهش می دهد.

$i = 10;  
echo ++$i; // Çıktı: 10

اپراتورهای منطقی PHP

عملگرهای منطقی PHP برای ترکیب عبارات شرطی استفاده می شوند.

اپراتورناممثال
سوگندو (و)$a و $b
یایا (یا)$a یا $b
xorxor$a xor $b
&&و (و)$a && $b
||یا (یا)$a || $b
!نه (توجه داشته باشید)$a! $b

مثال‌های عملگر منطقی PHP

و اگر شرط موجود در $a و $b برآورده شود عملگر (and) true را برمی گرداند.

$a = 100;
$b = 50;
if ($a === 100 and $b === 50) {
    echo "A, 100'e denktir ve B, 50'e denktir";
}
// Çıktı: A, 100'e denktir ve B, 50'e denktir

اگر شرط موجود در $a یا $b برآورده شود عملگر or (or) true را برمی گرداند.

$a = 100;
$b = 50;
if ($a === 100 or $b === 75) {
    echo "A, 100'e denktir veya B, 75'e denktir";
}
// Çıktı: A, 100'e denktir veya B, 75'e denktir

و اگر شرط موجود در $a و $b برآورده شود عملگر (and) true را برمی گرداند.

$a = 100;
$b = 50;
if ($a === 100 && $b === 50) {
    echo "A, 100'e denktir ve B, 50'e denktir";
}
// Çıktı: A, 100'e denktir ve B, 50'e denktir

اگر شرط موجود در $a یا $b برآورده شود عملگر or (or) true را برمی گرداند.

$a = 100;
$b = 50;
if ($a === 100 || $b === 75) {
    echo "A, 100'e denktir veya B, 75'e denktir";
}
// Çıktı: A, 100'e denktir veya B, 75'e denktir

عملگر xor فقط زمانی true را برمی‌گرداند که شرط موجود در $a یا $b برآورده شود.

$a = 100;
$b = 50;
if ($a === 100 xor $b === 75) {
    echo "A, 100'e denktir veya B, 75'e denktir";
}
// Çıktı: A, 100'e denktir veya B, 75'e denktir

اگر شرط موجود در $a برآورده نشود عملگر not true را برمی گرداند.

$x = 50;
if ($x !== 75) {
    echo "X, 75'e denk değildir";
}
// Çıktı: X, 75'e denk değildir

عملگرهای متن PHP (عملگرهای رشته ای)

PHP دارای 2 عملگر طراحی شده برای متون است:
عملگر الحاق و عملگر تخصیص الحاق.

اپراتورناممثال
.عملگر الحاق$a $b
.=عملگر تخصیص الحاق$a .= $b

مثال‌های اپراتور متن PHP

عملگر الحاق دو داده را ترکیب می کند. در مثال زیر، داده های متغیرهای $a و $b را ترکیب کرده و آنها را چاپ کردیم.

$a = "Hello ";
$b = " World!";
echo $a . $b;
// Çıktı: Hello World!

عملگر تخصیص الحاق، داده دوم را در کنار داده اول اضافه می کند. در مثال زیر داده های متغیر $b را در کنار داده های متغیر $a اضافه کرده و متغیر $a را چاپ کردیم.

$a = "Hello ";
$b = " World!";
$a .= $b;
echo $a;
// Çıktı: Hello World!

PHP عملگرهای آرایه

عملگرهای آرایه در PHP برای مقایسه آرایه ها استفاده می شوند.

اپراتورناممثال
+اپراتور اتحادیه (اتحادیه)$a + $b
==اپراتور برابری (برابری)$a == $b
===اپراتور معادل (هویت)$a === $b
!=عملگر نابرابری (نابرابری)$a != $b
<>عملگر نابرابری (نابرابری)$a <> $b
!==اپراتور عدم تعادل (غیر هویت)$a !== $b

PHP مثال‌های اپراتور آرایه

عملگر اتحادیه آرایه ها را ترکیب می کند.

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
print_r($a + $b);
// Çıktı: Array ( [a] => kırmızı [b] => mavi [c] => yeşil [d] => sarı )

عملگر برابری (برابری) کنترل برابری را در آرایه ها فراهم می کند. با عملگر برابری می توانیم بفهمیم که داده های دو آرایه برابر هستند یا خیر.

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a == $b) {
	echo "A, B'ye eşittir";
} else {
	echo "A, B'ye eşit değildir";
}
// Çıktı: A, B'ye eşit değildir

عملگر هویت کنترل برابری را در آرایه ها فراهم می کند. ما می توانیم بفهمیم که آیا داده های دو آرایه با عملگر هم ارزی معادل هستند یا خیر.

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a === $b) {
	echo "A, B'ye denktir";
} else {
	echo "A, B'ye denk değildir";
}
// Çıktı: A, B'ye denk değildir

عملگر نابرابری (نابرابری) کنترل نابرابری را در آرایه ها فراهم می کند. می‌توانیم یاد بگیریم که داده‌های دو آرایه با عملگر نابرابری برابر نیستند.

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a != $b) {
	echo "A, B'ye eşit değildir";
} else {
	echo "A, B'ye eşittir";
}
// Çıktı: A, B'ye eşit değildir

عملگر نابرابری (نابرابری) کنترل نابرابری را در آرایه ها فراهم می کند. می‌توانیم یاد بگیریم که داده‌های دو آرایه با عملگر نابرابری برابر نیستند.

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a  $b) {
	echo "A, B'ye eşit değildir";
} else {
	echo "A, B'ye eşittir";
}
// Çıktı: A, B'ye eşit değildir

عملگر non-identity کنترل غیر هویتی را در آرایه ها فراهم می کند. می توانیم بفهمیم که داده های دو آرایه با عملگر نابرابری معادل نیستند.

$a = array('a' => 'kırmızı', 'b' => 'mavi');  
$b = array('c' => 'yeşil', 'd' => 'sarı');  
if ($a !== $b) {
	echo "A, B'ye denk değildir";
} else {
	echo "A, B'ye denktir";
}
// Çıktı: A, B'ye denk değildir

اپراتورهای انتساب شرطی PHP

عملگرهای انتساب شرطی PHP برای تخصیص یک مقدار بر اساس شرایط استفاده می شود.

اپراتورناممثال
?:اپراتور سه تایی (سه تایی)$a = expr1 ? expr2: expr3
??اپراتور ادغام تهی (ادغام تهی)$a = expr1 ?? expr2

مثال‌های اپراتور تخصیص شرطی PHP

عملگر سه تایی داده های شرطی را اختصاص می دهد. در مثال زیر، داده‌های "not log in" را به متغیر $status در صورتی که شرط vala($user) true برگرداند، و "logg in" را اگر false برگرداند، اختصاص دادیم.

// Örnek 1:
$user = "Onur Özden";
echo $status = (empty($user)) ? "giriş yapılmadı" : "giriş yapıldı";
// empty($user) koşulu false ise, $status değişkenine "giriş yapıldı" değerini ata, true ise $status değişkenine "giriş yapılmadı" değerini ata.
// Örnek 2:
$user = "Onur Özden";
echo $status = (empty($user)) ? 0 : 1;
// empty($user) = false ise, $status değişkenine 0 değerini ata, true ise $status değişkenine 1 değerini ata.

عملگر ادغام تهی داده های شرطی را اختصاص می دهد. اگر اولین داده وجود داشته باشد و تهی نباشد، مقدار $a اولین داده است. اگر داده اول وجود نداشته باشد یا تهی باشد، مقدار $a داده دوم است. در مثال زیر، داده‌های "not log in" را به متغیر $status در صورتی که شرط vala($user) true برگرداند، و "logg in" را اگر false برگرداند، اختصاص دادیم.

// $_GET['user'] varsa ve null değilse $user değişkenine değer olarak atanır, $_GET['user'] yoksa veya null ise $user değişkenine "giriş yapılmadı" metni değer olarak tanır. 
echo $user = $_GET['user'] ?? 'giriş yapılmadı';
// Çıktı: giriş yapılmadı
// $car değişkeni varsa ve null değilse $car değişkenine $car değişkeninin değeri atanır, $car değişkeni yoksa veya null ise $car değişkenine 'BMW' değeri atanır. 
echo $color = $color ?? 'BMW';
// Çıktı: BMW

اولویت اپراتور PHP

نمونه های اولویت اپراتور

همانند ریاضیات، عملگرها در PHP دارای مقادیری اولویت هستند. بیایید با یک مثال این را بفهمیم.

echo 3 + 5 * 2; // Çıktı: 13

در فرآیند فوق خروجی 13 خواهد بود. زیرا ضرب بر جمع اولویت دارد. بنابراین ابتدا ضرب و سپس جمع انجام شد. با این حال، امکان مداخله در اولویت پردازش وجود دارد.

echo (3 + 5) * 2; // Çıktı: 16

در فرآیند فوق خروجی 16 خواهد بود. زیرا ما با قرار دادن آن در پرانتز فرآیند جمع را اولویت بندی کردیم. بنابراین ابتدا جمع و سپس ضرب انجام شد. اینگونه در اولویت تراکنش دخالت کردیم.

جدول اولویت اپراتورها

در جدول زیر، اپراتورها به ترتیب از بالاترین اولویت به کمترین اولویت فهرست شده اند. اپراتورهای یک خط دارای اولویت مساوی هستند و ترتیب رسیدگی به آنها در طول ارزیابی تعیین می شود. ما جدول اولویت همه عملگرها در PHP را در زیر قرار داده ایم.

نسبت دادناپراتورها
(هیچ کدام)clone new
(هیچ کدام)**
از سمت راست+ - ++ -- ~ (int) (float) (string) (array) (object) (bool) @
از سمت چپinstanceof
(هیچ کدام)!
از سمت چپ* / %
از سمت چپ+ - .
از سمت چپ<< >>
از سمت چپ.
بدون جهت< <= > >=
بدون جهت== != === !== <> <=>
سمت چپ&
از سمت چپ^
از سمت چپ|
از سمت چپ&&
از سمت چپ||
درست است??
بدون جهت? :
از سمت راست= += -= *= **= /= .= %= &= |= ^= <<= >>= ??=
(هیچ کدام)yield from
(هیچ کدام)yield
(هیچ کدام)print
از سمت چپand
از سمت چپxor
از سمت چپor

این جدول از php.net گرفته شده است. منبع: https://www.php.net/manual/tr/language.operators.precedence.php