طراحی وب سایت کتابخانه

طراحی وب سایت کتابخانه

عملگرها (Operators)

يكشنبه, ۱۷ اسفند ۱۳۹۳، ۰۱:۴۴ ب.ظ

     منظور از عملگر چیزی است که یک یا چند مقدار (یا به اصطلاح برنامه نویسان، عبارت) را می گیرد و یک مقدار دیگر را بر می گرداند. در واقع با استفاده از عملگرها عملیاتی را بر روی متغیرها و مقادیرشان انجام می دهیم. می توانیم عملگرها را بر اساس تعداد مقادیری که می گیرند به سه گروه تقسیم بندی کنیم. عملگرهای یگانی (Unary) عملگرهایی هستند که فقط یک مقدار را می گیرند، به عنوان مثال عملگر ! (نه منطقی) یا ++ (عملگر افزایش). دسته دوم، عملگرهای دوتایی هستند؛ این عملگرها همانطور که از نامشان پیداست، دو مقدار را می گیرند، مثل عملگرهای معمول ریاضی شامل بعلاوه، منها و ... که البته اکثر عملگرها در پی اچ پی تاز این نوع هستند. دسته سوم، عملگرهای سه تایی هستند که در واقع باید بگوییم عملگر سه تایی، چون در پی اچ پی از این نوع عملگر فقط یکی وجود دارد و آن عملگر ? است (که در اصل یک عملگر شرطی است).  

اولویت عملگرها

     تقدم (اولویت) یک عملگر مشخص می کند که یک عملگر چگونه دو عبارت را به هم پیوند می دهد. مثلا به این عبارت توجه کنید:2+3*4 مقدار این عبارت 20 خواهد بود نه 24. این نتیجه به خاطر این مساله به دست می آید که عملگر ضرب (*) نسبت به عملگر جمع (+) از تقدم بیشتری برخوردار است و لذا اول عملگر ضرب محاسبه می شود. در هنگام نوشتن کدها حتما باید به این مساله توجه داشت. اگر نیاز بود، می توانید با استفاده از پرانتز اولویتها را کنترل کنید؛ هر عبارتی که در داخل پرانتز قرار می گیرد دارای تقدم بیشتر است. 

     اگر چند عملگر داشته باشید که دارای تقدم یکسان باشند، در این حالت ترتیب اجرای آنها مشخص می کند که عملگرها چگونه دسته بندی شوند. به عنوان مثال در مورد عملگر منها (-) ترتیب از سمت چپ است، یعنی عملوندها از سمت چپ به راست محاسبه می شوند. مثلا عبارت1-2-3 به صورت (1-2)-3 محاسبه می شود که نتیجه آن -4 خواهد بود. اما مثلا در عملگر مساوی (=) ترتیب از راست به چپ است. بنابراین در عبارتی مانند $a=$b=$c گروه بندی از سمت راست و به شکل $a=($b=$c) انجام می شود.

     همانطور که قبلا هم گفته شد، بهترین راه برای اینکه دقیقا مطمئن شویم عملگرها چگونه عمل می کنند استفاده از پرانتز است؛ چون با این کار حتی اگر ندانیم کدام عملگر بر دیگری مقدم است، خودمان مشخص می کنیم که کدام عملگر زودتر عمل کند. البته با این کار قابلیت خوانایی کدهای نوشته شده را نیز بسیار افزایش می دهیم. 

     انواع عملگرهای مورد استفاده در پی اچ پی به شرح زیر می باشند:

عملگرهای ریاضی
      همانطور که از نام این عملگرهای معلوم است، از آنها برای انجام اعمال ریاضی بر روی مقادیر عددی استفاده می شود؛ یعنی همان محاسبات معمول ریاضی که از دوره دبستان آنها را فراگرفته ایم.
     جدول زیر این نوع از عملگرها را نشان می دهد:
عملگر نام مثال نتیجه
+ جمع $x + $y جمع $x و $y
- منهی $x - $y تفاوت $x و $y
* ضرب $x * $y حاصلضرب $x و $y
/ تقسیم $x / $y تقسیم $x و $y
% باقیمانده تقسیم $x % $y باقیمانده تقسیم $x بر $y
** به توان رساندن $x ** $y نتیجه به توان رساندن $x به $y (از نسخه 5.6 به بد معرفی شده است)

     
عملگرهای نسبت دهی
      مهمترین عملگر نسبت دهی (مقدار دهی) عملگر = است. به احتمال زیاد ممکن است در نگاه اول تصور کنید که این عملگر به معنی برابری است؛ که البته در پی اچ پی به این معنی نیست. این عملگر مقدار سمت چپ خود را به عملوند سمت راست نسبت می دهد. یک مثال جالب از کاربرد این عملگر را مشاهده کنید:
<?php

$a = ($b = 2) + 6; //مقدار متغیر a
                   //8
                   // در همین حال متغیر b نیز مقدار دهی شده است

?>
     توجه داشته باشید که در هنگام کار کردن با آرایه ها برای نسبت دادن یک مقدار به یک کلید نامگذاری شده از عملگر => استفاده می شود.
     علاوه بر عملگر اصلی مقدار دهی، عملگرهای ترکیبی نیز برای تمامی عملیات زیاضی باینری، اتحادهای آرایه ای و عملگرهای رشته ای وجود دارد که به شما اجازه می دهد یک مقدار را در یک عبارت استفاده کنید و سپس مقدار آن را بر اساس نتایج آن عبارت تنظیم کنید. مثال زیر مطلب را بهتر روشن می کند:
<?php

$a = 2;
$a += 4; // => $a = $a + 4;
$b = "طوک";
$b .= ": طراحی وب سایت کتابخانه"; // => $b = $b . ": طراحی وب سایت کتابخانه";

?>
      توجه کنید که با استفاده از عملگرهای مقدار دهی (نسبت دهی)، مقدار متغیر اصلی را به داخل متغیر جدید کپی می کنیم (نسبت دهی با مقدار)، بنابراین تغییر دادن یکی از متغیرها، تاثیر در مقدار دیگری نخواهد داشت.
     مطالب و مثال ذکر شده در بالا را می توان به این شکل خلاصه کرد:
نسبت دهی عبارت مشابه توضیح
x = y 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 اگر مقدار x برابر مقدار y باشد مقدار صحیح(TRUE) را برمی گرداند.
=== یکسان بودن $x === $y اگر مقدار x برابر مقدار y باشد و نوع دو متغیر با یکدیگر مشابه باشد، مقدار صحیح (TRUE) را بر می گرداند.
!= عدم برابری $x != $y اگر مقدار x برابر با مقدار y نباشد مقدار صحیح(TRUE) را بر می گرداند.
<> عدم برابری $x <> $y اگر مقدار x برابر مقدار y نباشد مقدار صحیح (TRUE) را برمی گراند.
!== عدم یکسان بودن $x !== $y Returns true if $x is not equal to $y, or they are not of the same type
> بزرگ تر بودن $x > $y اگز x بزرگ تر از y باشد مقدار صحیح را برمی گرداند.
< کوچک بودن $x < $y اگر x کوچک تر از y باشد مقدار صحیح(TRUE) را برمی گرداند.
>= بزرگ تر یا مساوی بودن $x >= $y اگر x بزرگتر یا مساوی مقدار y باشد مقدار صحیح(TRUE) را برمی گرداند.
<= کوچک تر یا مساوی بودن $x <= $y اگر مقدار x کوچکتر یا مساوی مقدار y باشد مقدار صحیح(TRUE)را بر می گرداند.
     اگر شما یک عدد را با یک رشته مقایسه می کنید یا در عبارتی که عملیات مقایسه را بر روی آن انجام می دهید یک رشته عددی وجود دارد، در این شرایط هر رشته به یک عدد تبدیل می شود و فرایند مقایسه به صورت عدد انجام می شود. این قانون در مورد عبارت های switch هم صدق می کند. البته واضح است که در هنگام استفاده از عملگرهای مقایسه ای === و ==! عمل تبدیل انجام نمی شود، به خاطر اینکه این عملگرها نوع مقادیر را نیز بررسی می کنند. 
عملگر کنترل خطا

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

     اگر شما یک تابع شخصی متصدی خطا (custom error handler function) را با استفاده از تابع set_error_handler() ایجاد کرده باشید، در این شرایط تابع شما فراخوانی نمی شود. 

     اگر ویژگی track_error فعال شده باشد، هر پیغام خطایی که توسط عبارت ایجاد می شود در متغیر $php_errormsg ذخیره می شود. این متغیر در هنگام بروز هر خطای جدید، بازنویسی می شود؛ پس اگر می خواهید از آن استفاده کنید، زود این کار را انجام دهید. 

     

عملگرهای افزایش دهنده و کاهش دهنده

     پی اچ پی همانند زبان سی (c) از عملگرهای کاهش دهنده و افزایش دهنده (که قبل یا بعد از متغیر قرار می گیرند) پشتیبانی می کند. همانطور که از نام این عملگرها پیداست، با استفاده از آنها می توان مقدار یک متغیر را افزایش یا کاهش داد. توجه داشته باشید که این عملگرها بر روی آرایه ها، اشیاء، و منابع تاثیر ندارند. 

عملگر نام توضیح
++$x پیش افزایش
(Pre-increment)
مقدار متغیر x را یکی افزایش می دهد، سپس x را بر می گرداند
$x++ پس افزایش
(Post-increment)
متغیر x را بر می گرداند و سپس مقدار x را یکی افزایش می دهد.
--$x پیش کاهش
(Pre-decrement)
مقدار متغیر x را یکی کم می کند و سپس متغیر x را بر می گرداند.
$x-- پس کاهش
(Post-decrement)
متغیر x را بر می گرداند و سپس از مقدار آن، یکی کم می کند.

مثال زیر همه چیز را به خوبی نشان می دهد:

<?php
echo "<h3>Postincrement</h3>";
$a = 5;
echo "Should be 5: " . $a++ . "<br>\n";
echo "Should be 6: " . $a . "<br>\n";

echo "<h3>Preincrement</h3>";
$a = 5;
echo "Should be 6: " . ++$a . "<br>\n";
echo "Should be 6: " . $a . "<br>\n";

echo "<h3>Postdecrement</h3>";
$a = 5;
echo "Should be 5: " . $a-- . "<br>\n";
echo "Should be 4: " . $a . "<br>\n";

echo "<h3>Predecrement</h3>";
$a = 5;
echo "Should be 4: " . --$a . "<br>\n";
echo "Should be 4: " . $a . "<br>\n";
?>
عملگرهای منطقی

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

عملگرهای منطقی
مثال نام نتیجه عبارت
$a and $b And اگر هر دو متغیر a و b درست باشند مقدار TRUE را بر می گرداند.
$a or $b Or اگر یکی از متغیرهای a یا b درست باشند مقدار TRUE را بر می گرداند.
$a xor $b Xor اگر یکی از متغیرهای a یا b صحیح باشند و هر دو صحیح نباشند مقدار TRUE را بر می گرداند.
! $a Not اگر متغیر a درست نباشد مقدار TRUE را بر می گرداند.
$a && $b And اگر دو متغیر a و b درست باشند مقدار TRUE را برمی گرداند.
$a || $b Or اگر یکی از متغیرهای a یا b درست باشد مقدار TRUE را بر می گرداند.
عملگرهای رشته ای

     در زبان پی اچ پی دو عملگر رشته ای وجود دارد. اولین آن عملگر الحاق (concatenation) است، که باعث الحاق عبارت سمت راست و عبارت سمت چپ این عملگر می شود. عملگر دوم، عملگر نسبت دهی و الحاق (concatenating assignment) است، که عبارت سمت راست عملگر را به عبارت سمت چپ عملگر اضافه می کند. 

عملگر نام مثال نتیجه عبارت
. الحاق (Concatenation) $txt1 . $txt2 مقدار متغیر text1 را به مقدار متغیر text2 اضافه می کند.
.= نسبت دهی و الحاق (Concatenation assignment) $txt1 .= $txt2 مقدار متغیر tex2 را به مقدار متغیر text1 اضافه می کند.

     برای درک بهتر موضوع به مثال زیر توجه کنید:


<?php
$a = "سلام ";
$b = $a . "کاربر گرامی!"; // now $b contains "سلام کاربر گرامی!"

$a = "سلام ";
$a .= "کاربر گرامی!";     // now $a contains "سلام کاربر گرامی!"
?>
عملگرهای آرایه ای
عملگر نام مثال نتیجه عبارت
+ Union $x + $y Union of $x and $y
== تساوی $x == $y اگر آرایه های x و y جفت های یکسال کلید/مقدار داشته باشند، مقدار TRUE را باز می گرداند.
=== برابری $x === $y اگر آرایه های xو y جفت های یکسال کلید/مقدار داشته باشند و با ترتیب مشابه و انواع مشابه باشند، مقدار TRUE را بر می گرداند.
!= عدم تساوی $x != $y اگر آرایه x با آرایه y برابر نباشد مقدار TRUE را بر می گرداند.
<> عدم تساوی $x <> $y اگر آرایه x با آرایه y برابر نباشد، مقدار TRUE را بر می گرداند.
!== عدم برابری $x !== $y اگر آرایه x با آرایه y مساوی و برابر نباشد، مقدار TRUE را بر می گرداند.

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

موافقین ۱ مخالفین ۰ ۹۳/۱۲/۱۷
مهرداد یوسفی فرد

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی