উত্তর:
ডক্স থেকে :
Coalesce برابر বা ?? = অপারেটর একটি অ্যাসাইনমেন্ট অপারেটর। যদি বাম প্যারামিটারটি নাল হয় তবে ডান প্যারামিটারটির মান বাম দিকে নির্ধারণ করে। মানটি যদি শূন্য না হয় তবে কিছুই করা হয় না।
উদাহরণ:
// The folloving lines are doing the same
$this->request->data['comments']['user_id'] = $this->request->data['comments']['user_id'] ?? 'value';
// Instead of repeating variables with long names, the equal coalesce operator is used
$this->request->data['comments']['user_id'] ??= 'value';
সুতরাং এটির জন্য মূলত একটি শর্টহ্যান্ড হ'ল যদি এর আগে নির্ধারিত না করা হয়।
ইন পিএইচপি 7 এই মূলত মুক্তি পায় একজন বিকাশকারী একটি তিন অপারেটর সঙ্গে মিলিত একটি isset () চেক প্রক্রিয়া সহজ করার অনুমতি দেয়। উদাহরণস্বরূপ, পিএইচপি 7 এর আগে আমাদের এই কোডটি থাকতে পারে:
$data['username'] = (isset($data['username']) ? $data['username'] : 'guest');
যখন পিএইচপি 7 প্রকাশিত হয়েছিল, আমরা পরিবর্তে এটি লেখার সক্ষমতা পেয়েছি:
$data['username'] = $data['username'] ?? 'guest';
এখন, যখন পিএইচপি 7.4 প্রকাশিত হয়, এটি আরও আরও সরল করা যেতে পারে:
$data['username'] ??= 'guest';
একটি ক্ষেত্রে যেখানে এটি কাজ করে না তা হ'ল যদি আপনি কোনও ভিন্ন ভেরিয়েবলের জন্য একটি মান নির্ধারণের চেষ্টা করছেন, তবে আপনি এই নতুন বিকল্পটি ব্যবহার করতে অক্ষম হবেন। যেমন, এটি স্বাগত জানাতে গিয়ে কয়েকটি সীমিত ব্যবহারের মামলাও থাকতে পারে।
নাল কোলেসিং অ্যাসাইনমেন্ট অপারেটর নাল কোয়েলসিং অপারেটরের ফলাফল নির্ধারণের একটি শর্টহ্যান্ড উপায়।
সরকারী প্রকাশের নোটগুলির একটি উদাহরণ :
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
দস্তাবেজের উদাহরণ :
$array['key'] ??= computeDefault();
// is roughly equivalent to
if (!isset($array['key'])) {
$array['key'] = computeDefault();
}
The folloving lines...