با عملگر 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
اگر دوست داری برنامه نویسی PHP رو حرفه ای یاد بگیری آیا می دانید بیش از ۸۰% وب سایت های موجود در ایران از جمله لیدرهای بازار وب (اسنپ، اسنپ فود، نت برگ، دیجیکالا، الوپیک و ... ) زبان برنامه نویسی PHP را به عنوان زبان اصلی برای پیاده سازی امکانات سمت سرور خود انتخاب کردند! متخصص PHP arrow_back

مواردی که در بالا ذکر شد مربوط به 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 replyپاسخ

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

سجاد شاعر

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

mahdi98 replyپاسخ

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

سجاد شاعر

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

امیرجلالی replyپاسخ

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

سجاد شاعر

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

Lizard Gold replyپاسخ

بسیار عالی

علیرضا replyپاسخ

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

نگار مرادی replyپاسخ

با تشکر از مطلب مفیدتون

Seyed Reza Bazyar replyپاسخ

ابتدا تشکر میکنم بابت این مطلب آموزشی بسیار عالی و آموزنده
یه سوال هم ذهن من رو درگیر کرده که شاید برای خیلی ها مهم نباشه. اما از روی کنجکاوی میپرسم:
روش اول از خانواده C الگوبردای شد
روش دوم چطور؟ باز هم از زبان خاص دیگه ای به PHP منتقل شده یا این مورد رو PHP خودش ایجاد کرده؟

لقمان آوند

اپراتور ?? در زبان های دیگه هم وجود داره و php هم الان اونو داره. اینکه از کجا اومده خیلی مهم نیست. مهم اینه که الان در زبان هست و راحتتر از گذشته می تونید مقادیر نال رو چک و استفاده کنید.

add_circle ارسال دیدگاه

خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :