انواع عملگر ها در PHP و نحوه استفاده از آن ها
از عملگر ها برای کار بر روی مقادیر استفاده می شود و می توان آن ها را به پنج گروه تقسیم کرد. عملگر های حسابی، تخصیصی، مقایسه ای، منطقی و بیتی.
عملگر های حسابی
چهار عملگر برای عملیات اصلی ریاضی (جمع، تفریق، ضرب، تقسیم) به علاوه یک عملگر باقیمانده (%) که برای به دست آوردن باقیمانده تقسیم صحیح استفاده می شود، وجود دارند:
عملگر های تخصیصی
دومین گروه عملگر ها، عملگر های تخصیصی می باشند. مهمترین آنها، خود عملگر تخصیص (=) است که مقداری رابه یک متغیر اختصاص می دهد.
عملگر های تخصیصی مرکب
کاربرد متداول عملگر های حسابی و تخصیصی، کار بر روی مقدار یک متغیر و دخیره کردن متیجه حاصل در همان متغیر است. این گونه عملیات را می توان با استفاده از عملگر های تخصیصی مرکب به شکل کوتاه و خلاصه در آورد.
عملگر های افزایشی و کاهشی
یکی دیگر از انواع عملیات مهم در برنامه نویسی، افزایش یا کاهش یک مقدار به میزان یک واحد است که می توان این کار را با عملگر های افزایشی (++) یا کاهشی (--) به سادگی انجام داد:
هر دوی این عملگر ها را می توان پیش یا پس از متغیر به کار گرفت
$x++; // پس افزایش
$x--; // پس کاهش
++$x; // پیش افزایش
--$x; // پیش کاهش
هر دو کد قبل، نتیجه مشابهی بر روی مقدار یک متغیر دارند و تنها تفاوت آن ها در این است که عملگر های پس افزایشی یا پس کاهشی، مقدار اصلی متغیر را پیش از تغییر آن، بر می گردانند. در حالی که عملگر های پیش افزایشی یا پیش کاهشی، ابتدا مقدار متغیر را تغییر می دهند و سپس مقدار جدید را به عنوان جواب بر میگردانند.
در کد های زیر، به مقدار x در دو حالت مختلف توجه کنید:
عملگر های مقایسه ای
عملگر های مقایسه ای، دو مقدار را با هم مقایسه کرده و جواب true (صحیح) یا false (نادرست) را باز میگردانند. از این عملگر ها در اصل برای تعیین وضعیت شرط ها استفاده می شود. شرط ها به عباراتی گفته می شود که true یا false ارزیابی می شوند.
از عملگر یکسان ( ===) برای مقایسه هم زمان مقدار و نوع داده عملوند ها استفاده می شود. این عملگر در صورتی که هر دو عملوند دارای مقدار و نوع داده مشابه باشند، مقدار true و در غیر اینصورت مقدار false را به عنوان جواب بر میگرداند. همچنین عملگر غیر یکسان (!==) در صورتی که هر دو عملوند دارای مقدار یکسان یا نوع مشابه نباشند، مقدار true را به عنوان جواب بر میگرداند.
$x = (1 == "1"); // چون مقدار مشابه هستن، مقدار true بر میگرداند
$x = (1 === "1"); // چون نوع مقادیر مشابه نیست، مقدار false را بر میگرداند
عملگرهای منطقی
معمولا عملگر های منطقی همراه با عملگر های مقایسه ای به کار گرفته می شوند. برای مثال، عملگر منطقی and (&&) در صورتی پاسخ true بر میگرداند که پاسخ هر دو سمت عملگر، صحیح (true) باشد. عملگر منطقی OR (||) در صورتی پاسخ true بر میگرداند که پاسخ یکی از دو سمت عملگر یا هر دوی آنها true باشد. برای وارونه کردن یک پاسخ بولی هم از عملگر منطقی NOT (!) استفاده می شود. ضمنا توجه داشته باشید که در مورد عملگر AND منطقی یا OR منطقی، اگر نتیجه عملگر با بررسی سمت چپ مشخص شود، دیگر عبارت سمت راست بررسی نخواهد شد.
عملگر های بیتی
عملگر های بیتی می توانند ارقام بتینری اعداد را دستکاری کنند
عملگر های بیتی هم مثل عملگر های حسابی دارای عملگر های تخصیصی کوتاه هستند
تقدم عملگر ها
عبارت های PHP معمولا از سمت چپ به راست مورد ارزیابی قرار می گیرند اما وقتی عبارتی شامل چندین عملگر باشد، تقدم عملگر هاست که ترتیب ارزیابی آن ها را تعیین می نماید. تقدم عملگرها در PHP در جدول زیر ذکر شده است
برای مثال، عملگر and منطقی (&&) ضعیف تر از عملگر های حسابی می باشند
$x = 2+3 > 1*4 && 5/5 == 1; // جواب عبارت true می باشد
با توجه به اینکه پرانتز ها همیشه بالاترین حق تقدم را دارند، می توان برای واضح و خواناتر کردن عبارت، از پرانتز استفاده کرد تا آنچه داخل پرانتز قرار گرفته و نوشته می شود پیش از دیگر قسمت ها مورد ارزیابی قرار گیرد. بدین ترتیب، کد پیش را می توان به شکل زیر بازنویسی کرد
$x = ((2+3) > (1*4)) && ((5/5) == 1); // جواب عبارت true می باشد
در جدول قبل سه متغییر and، or و xor نیز وجود داشتند که به بررسی آن ها می پردازیم. عملگر های منطقی && و || هستند و تنها تفاوتشان در سطح تقدم شان است. به مثال های زیر دقت کنید:
$a = trye && false;
کد فوق معادل کد زیر است و مقدار متغیر $a در آن، false است.
$a = (true && false);
همچنین به جای عملگر && می توانید از and استفاده کنید. متغییر a مقدار true را به دست می آورد
$a = true and false; // ($a = true) and false
همچنین عملگر xor نیز نسخه بولی عملگر بیتی ^ است. ایم عملگر تنها در صورتی true (صحیح) ارزیابی می شود که فقط یکی از عملوند ها، true باشد
$a = (true xor true);
منبع it3du.ir