php

جلسه ۱۱: اولویت و تقدم در php

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

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

اولویت

اولویت عملگرها مشخص کننده ترتیب اجرا عملگرهای موجود در یک عبارت است. اولویت عملگرها در PHP مشابه اولویت عملگرهای حسابی منظم است.

  • عملگرهای *، /، % اولویت های یکسانی دارند.
  • عملگرهای – و + اولویت های یکسانی دارند.
  • اولویت اجرا عملگر های *، / و % از عملگر های – و + بالاتر است.

در هر عبارت، ابتدا عملگرهایی با اولویت بالاتر اجرا می شوند.

تقدم

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

تقدم سمت چپ

تقدم سمت چپ زمانی اتفاق می افتد که یک عبارت را از سمت چپ به راست ارزیابی کنیم. به طور مثال؛ می دانیم عملگرهای * و / اولویت یکسانی دارند و تقدم آنها چپ به راست است. بنابراین عبارت زیر:

<?php
۱۰۰ / ۱۰ * ۱۰ 
?>

به این صورت محاسبه می شود:

<?php
(۱۰۰ / ۱۰) * ۱۰
?>
<?php
echo "5 - 3 + 2 = " . (5 - 3 + 2); // 5-3+2 is treated as (5-3)+2
echo "\n";
echo "5 + 3 * 2 = " . (5 + 3 * 2); // 5+3*2 is treated as 5+(3*2)
echo "\n";
echo "15 / 3 * 5 = " . (15 / 3 * 5); // 15/3*5 is treated as (15/3)*5
echo "\n";
echo "42 + 7 % 2 = " . (42 + 7 % 2); // 42+7%2 is treated as 42+(7%2)
?>

عملگرهایی با اولویت و تقدم برابر

به طور طبیعی باید این سوال به ذهن شما رسیده باشد که اگر دو عملگر با اولویت و تقدم برابر در یک عبارت بیایند، چه اتفاقی می افتد؟ در این حالت، عبارت از سمت چپ به راست ارزیابی می شود و به این صورت مشخص می شود که ابتدا کدام عملگر باید اجرا شود. به عنوان مثال، % و * اولویت و تقدم یکسانی دارند. بنابراین در عبارت ;۲%۳*۵=a$ ، مقدار a$ برابر ۱ خواهد بود چرا که :

"mord mathrm">(5 * 3) % 2 = 15%2 = 1

و در عبارت ;۲*۳%۵=a$ ، مقدار a$ برابر با ۴ خواهد بود. چرا که :

(۵ % ۳) * ۲ = ۲*۲ = ۴آآ

برای آشنایی با نحوه کار، قطعه کد زیر را اجرا کنید:

<?php
$a = 5 * 3 % 2; // $a now is (5 * 3) % 2 => (15 % 2) => 1
echo $a . "\n";
$a = 5 % 3 * 2; // $a now is (5 % 3) * 2 => (2 * 2) => 4
echo $a . "\n";
?>

نتیجه

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

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

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا