عملگرها در PHP

«عملگرها نمادهائی هستند که با استفاده از آنها مقادیر و متغیر ها را دستکاری می کنید و عملیات خاصی را روی آنها انجام می دهید»

انواع عملگرها
در حالت کلی 12 نوع عملگر اصلی داریم. تعدادی از عملگرها زیر مجموعه ای از عملگرها را در بردارند. در زیر انواع عملگرها را مشاهده می کنید:

  • عملگرهای ریاضی
  • عملگرهای رشته ای
  • عملگرهای تناظری (دارای زیر مجموعه عملگرهای تناظری ترکیبی، افزایش و کاهش گام بگام، عملگر مرجع)
  • عملگرهای مقایسه ای
  • عملگرهای منطقی
  • عملگرهای بیتی
  • عملگرهای خاص
  • عملگر سه گانه
  • عملگر نفی خطا
  • عملگر اجرائی
  • عملگرهای آرایه ای
  • عملگر نمونه

عملگرهای ریاضی
اغلب شما با عملگرهای ریاضی آشنا هستید. این عملگرها در جدول زیر نشان داده شده اند:

مثال
نام
نتیجه
-$aNegation
Opposite of $a.
$a + $bAddition
Sum of $a and $b.
$a – $bSubtraction
Difference of $a and $b.
$a * $bMultiplication
Product of $a and $b.
$a / $bDivision
Quotient of $a and $b.
$a % $bModulus
Remainder of $a divided by $b.

 

 

 

 

 

 

عملگرهای رشته ای
تنها عملگر رشته ای، عملگر پیوند می باشد:

$a = "Hello ";
$b = $a . "World!"; // $b contains "Hello World!"

عملگرهای تناظری
این عملگر با جمله “برابر است با” مشخص می شود:

$a = "Hello ";

عملگرهای تناظری ترکیبی
این عملگرهای ترکیبی از عملگرهای ریاضی و عملگر تناظری می باشند و برای کم کردن حجم برنامه و نیز جذابیت کد نویسی بکار می روند!
در جدول زیر این عملگر ها را مشاهده می نمائید:(شامل مثال، نام و معادل عملگر)

$a += $b     $a = $a + $b    Addition
$a -= $b     $a = $a – $b     Subtraction
$a *= $b     $a = $a * $b     Multiplication
$a /= $b     $a = $a / $b    Division
$a %= $b     $a = $a % $b    Modulus
$a .= $b     $a = $a . $b       Concatenate

افزایش و کاهش گام به گام

مثالنامنتیجه
++$aPre-incrementIncrements $a by one, then returns $a.
$a++Post-incrementReturns $a, then increments $a by one.
–$aPre-decrementDecrements $a by one, then returns $a.
$a–Post-decrementReturns $a, then decrements $a by one.

 

 

 

 

 

 

عملگر مرجع
اگر بخواهید مقدار متغیر a را در b کپی کنید از روش زیر استفاده می کنید:

$a = "Hello ";
$b = $a

در این حالت در صورت تغییر مقدار b مقدار a تغیر نمی کند. گاهی نیاز است تا با تغییر b مقدار a و بالعکس تغییر کند. در این حالت b را با استفاده از عملگر مرجع ” & ” ، و عملگر تناظر ” = ” b را تعریف می کنیم:

$a = "Hello ";
$b = &$a;

حال با تغییر b یا a مقدار دیگری نیز تغییر پیدا می کند. برای اینکه این دو از هم جدا شوند باید یکی را با دستور unset از بین ببرید و از دوباره آن را تعریف کنید.

عملگر های مقایسه ای
این عملگر ها برای مقایسه متغیر ها از نظر تساوی یا تشابه و … مورد استفاده قرار می گیرند:

مثال
نام
نتیجه
$a == $b
برابری
TRUE if $a is equal to $b.
$a === $b
تشابه
TRUE if $a is equal to $b, and they are of the same type. (introduced in PHP 4)
$a != $b
نابرابری
TRUE if $a is not equal to $b.
$a <> $b
نابرابری
TRUE if $a is not equal to $b.
$a !== $b
نامتشابه
TRUE if $a is not equal to $b, or they are not of the same type. (introduced in PHP 4)
$a < $b
کوچکتر از
TRUE if $a is strictly less than $b.
$a > $b
بزرگتر از
TRUE if $a is strictly greater than $b.
$a <= $b
مساوی یا کوچکتر
TRUE if $a is less than or equal to $b.
$a >= $b
مساوی یا بزرگتر
TRUE if $a is greater than or equal to $b.

 

عملگرهای منطقی
در عملگرهای منطقی شزایط خاصی بررسی و عبارت منطقی true به معنی درست و false به معنی نادرست بوجود می آید. در جدول زیر عملگرهای منطقی و کاربرد آنها توصیف شده است:

مثالنامنتیجه
$a and $bAndTRUE if both $a and $b are TRUE.
$a or $bOrTRUE if either $a or $b is TRUE.
$a xor $bXorTRUE if either $a or $b is TRUE, but not both.
! $aNotTRUE if $a is not TRUE.
$a && $bAndTRUE if both $a and $b are TRUE.
$a || $bOrTRUE if either $a or $b is TRUE.

 

 

 

 

 

 

اولویت عملگرهای and و or پائین تر از اولویت عملگرهای && و || است.

 

عملگرهای بیتی
عملگرهای بیتی، اعداد صحیح را به صورت مجموعه ای بیت ها در نظر می گیرند. کاربرد عملگرهای بیتی در php بسیار اندک است. در جدول زیر این عملگرها را مشاهده می کنید:

مثال
نام
نتیجه
$a & $bAndBits that are set in both $a and $b are set.
$a | $bOrBits that are set in either $a or $b are set.
$a ^ $bXorBits that are set in $a or $b but not both are set.
~ $aNotBits that are set in $a are not set, and vice versa.
$a << $bShift leftShift the bits of $a $b steps to the left (each step means "multiply by two")
$a >> $bShift rightShift the bits of $a $b steps to the right (each step means "divide by two")

 

عملگرهای خاص
دو عملگر -> و new با مفهوم کلاس در ارتباطند و در آینده بررسی خواهند شد.

عملگر سه گانه
این عملگر شبیه دستور if-else عمل می کند. دو عبارت زیر با هم برابرند:

$action = (empty($_POST['action'])) ? ‘default’ : $_POST['action'];

 

if (empty($_POST['action'])) {
$action = ‘default’;
} else {
$action = $_POST['action'];
}

عملگر نفی خطا
عملگر نفی خطا (error suppression) از نماد @ استفاده می کند. در مثال

$a=@(57/0);

اگر از نماد @ استفاده نشود، به علت تقسیم بر صفر خطائی ظاهر می شود. با استفاده از این عملگر ایجاد خطا منتفی می گردد.
اگر با این روش بوجود آمدن خطا را نفی می کنید بهتر است کدهای مدیریتی را بنویسید تا بوجود آمدن خطا را چک کند. اگر قابلیت track_errors را فعال کنید پیام های خطا در متغیر جهانی php_errormsg$ ذخیره می شوند.

عملگر اجرائی
عملگر اجرائی از نماد ‘ ‘ استفاده می کند. دقت کنید که دکمه مربوط به این نماد با دکمه ~ مشترک است. هر عبارتی که بین ‘ قرار گیرد در خط فرمان سرور اجرا می شود. مثلا در سیستم عامل یونیکس، کد زیر لیست دایرکتوری را تهیه کرده و در ذخیره می کند:

$output = `ls -al`;
echo "<pre>$output</pre>";

عملگرهای آرایه ای
عملگرهای آرایه ای [] امکان دسترسی به اجزاء آرایه را فراهم می آورند. برخی از عملگرهای آرایه ای را در زیر مشاهده می نمائید:

مثال
نام
نتیجه
$a + $bUnionUnion of $a and $b.
$a == $bEqualityTRUE if $a and $b have the same key/value pairs.
$a === $bIdentityTRUE if $a and $b have the same key/value pairs in the same order and of the same types.
$a != $bInequalityTRUE if $a is not equal to $b.
$a <> $bInequalityTRUE if $a is not equal to $b.
$a !== $bNon-identityTRUE if $a is not identical to $b.

 

عملگر نمونه
عملگر نمونه عملگر instaceof است که در برنامه نویسی شیءگرا بکار می رود. به طور خلاصه، این عملگر شی را بررسی و از تعلق آن به یک کلاس خاص آگاهی می یابد:

class A { }
class B { }
$thing = new A;
if ($thing instanceof A) {
   echo ‘A’;
}
if ($thing instanceof B) {
   echo ‘B’;
}

مطالب مرتبط:
  1. اولویت و شرکت پذیری در PHP
  2. توضیحات شرطی – Conditional Comments
  3. آموزش CURL در PHP

سعید زبردست

facebook twitter linkedin Email

من برنامه نویس Java و PHP هستم. در کنار برنامه نویسی اطلاعات خوبی در زمینه پایگاه ‌های داده بخصوص MySQL دارم. برای اطلاع بیشتر به صفحه درباره سعید زبردست مراجعه کنید.