محمد دولابی
محمد دولابی
خواندن ۱ دقیقه·۲ سال پیش

عملگر Null safe در php

یکی از ویژگی های خوبی که در php ورژن 8 ارائه شده قابلیت عملگر Null safe هست که خیلی جالبه
قبلا اگر ما میخواستیم از یک ابجکت مقداری که وجود ندارد رو بگیریم با خطا مواجه میشدیم ولی با اضافه شدن این ویژگی میتونیم این خطا رو مدیریت کنیم

یه مثال بزنیم

$country = $customer->getAddress()->getCountry(); // Fatal error: Uncaught Error: Call to a member function getCountry() on null

در کد بالا متد ()Customer::getAddress میتواند نال باشد و اگر نال باشد با خطا مواجه میشیم

برای حل این مشکل php عملگر Null safe رو معرفی میکنه که به صورت زیر میتونیم ازش استفاده کنیم و از بروز خطا جلو گیری کنیم

$country = $customer?->getAddress()?->getCountry();

در مثال بالا وقتی متد ()Customer::getAddress نال باشد دیگر متد بعدی اجرا نمیشود

اگر عملگر (?->)null-safe با مقدار null مواجه شود، بقیه عبارت را نادیده می‌گیرد و بلافاصله و بدون ایجاد خطا، null را برمی‌گرداند

این بود عملگر null safe .
البته نا گفته نماند که عملگر Null coalescing که در ورژن ۷ php ارائه شده بود برای ابجکت قابل استفاده نبود و فقط برای پراپرتی ها جواب میداد.

$obj = new stdClass; echo $obj->foo->bar->baz ?? 12; // 12

امیدوارم مفید بوده باشه.


منبع شماره یک<br/>منبع شماره دو

null safeعملگر null safephp 8laravelweb development
شاید از این پست‌ها خوشتان بیاید