با عملگر null coalescing operator (؟؟) در php 7 آشنا شوید !

- visibility ۸ mode_comment

null coalescing operator

isset() و شروط تک خطی

اگر برنامه نویس php باشید قطعا با دستور ()isset آشنایی دارید و میدانید که این دستور در php برای اطمینان از این مورد استفاده میشود که آیا متغیری که مد نظر ماست ،  وجود دارد یا خیر .

از شروط تک خطی هم اکثر برنامه نویسان استفاده میکنند و با آن آشنایی دارند .

به عنوان مثال مورد زیر را در نظر بگیرید :

در مثال بالا بررسی شده که آیا مقدار "user" در متغیر سراسری  GET وجود دارد یا خیر . این مورد با ()isset مورد بررسی قرار گرفته است و اگر "user" در متغیر سراسری  GET وجود داشت متغیر name با مقدار آن  برابر خوهد شد .

اما بعد از این ، از شرط تک خطی استفاده شده که اگر مقدار "user" در متغیر سراسری GET وجود نداشت مقدار "no user" برای متغیر name در نظر گرفته شود .

لازم به ذکر است که به عملگر (?) که در شروط تک خطی از آن استفاده میکنیم ، ternary operator گفته میشود .

مواردی که در بالا ذکر شد مربوط به php 5 میشوند .

در php 7 عملگر جدیدی اضافه شده که این امور را برای ما ساده تر میکند . در ادامه با این عملگر جدید آشنا میشویم .

عملگر null coalescing operator (؟؟)

در مثال قبل ، استفاده از ()isset و شروط تک خطی را یاد آوری کردیم و اکنون به عملگر جدیدی که در php 7 اضافه شده میپردازیم .

این مورد در php 7 اضافه شده است و کاری که در مثال قبل توسط  ()isset و (?) انجام دادیم را با هم انجام میدهد . برای مثال مورد زیر را در نظر بگیرید :

نتیجه همانند نتیجه مثال قبل خواهد بود اما حجم کد کمتر شده است . در اینجا اگر کلید user در متغیر سراسری GET موجود نباشد ، مقدار no user برگشت داده میشود .

خاصیت مهم دیگر این عملگر جدید آن است که میتوان در حالت زنجیروار(chaining) هم از آن استفاده کرد .

مثلا اگر بخواهیم وجود کلید user را هم در متغیر سراسری POST و هم GET بررسی کنیم و در صورت نبودن کلید user در هر دو مقدار no user را برگردانیم میتوانیم به صورت زیر عمل کنیم :

این بود توضیحات عملگر (??) در php 7 اگر نظری دارید و یا نکته ای به ذهنتان میرسد که تکمیل کننده بحث هست خوشحال میشویم در بخش نظرات با ما در میان بگذارید .

 

comment دیدگاه کاربران
mohammad

بابت مطالب مفیدی که که میذارین ، مخصوصا ویژگی های جدید درphp7 سپاسگزارم

سجاد شاعر

از نظر لطفتون ممنونیم . موفق و پیروز باشید

mahdi98

ممنون. مفید بود

سجاد شاعر

نظر لطفتونه . موفق باشید

امیرجلالی

بسیارسپاسگزارم

سجاد شاعر

خواهش میکنم دوست عزیز . موفق باشید

Lizard Gold

بسیار عالی

علیرضا

سلام مطلب جالبی بود 🙂

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.