Null Coalescing Operator (??) PHP 7-এ পরিচিত একটি গুরুত্বপূর্ণ অপারেটর, যা সহজেই ভেরিয়েবলের null চেক করতে ব্যবহৃত হয়। এটি সংক্ষিপ্তভাবে চেক করতে সহায়ক যে কোনো ভেরিয়েবল সেট করা হয়েছে কিনা এবং সেট করা হলে সেটির মান ব্যবহার করা হবে, আর না থাকলে একটি ডিফল্ট মান ব্যবহার করা হবে। Null Coalescing Operator মূলত isset() ফাংশনের মতো কাজ করে।
Null Coalescing Operator (??) এর ব্যবহার
Null Coalescing Operator ?? দুটি অপারেন্ডের মধ্যে কাজ করে। এটি প্রথম অপারেন্ডটি null কিনা তা চেক করে। যদি প্রথম অপারেন্ড null না হয়, তাহলে সেটি ব্যবহার করবে, আর যদি সেটি null হয়, তাহলে দ্বিতীয় অপারেন্ডটি ব্যবহার করবে।
সাধারণ গঠন:
$variable = $value1 ?? $value2;- এখানে
$value1সেট করা থাকলে সেটির মান$variableএ স্টোর হবে। - যদি
$value1unset বা null হয়, তাহলে$value2এর মান$variableএ স্টোর হবে।
Null Coalescing Operator এর উদাহরণ
১. সাধারণ উদাহরণ
<?php
$username = $_GET['username'] ?? 'Guest';
echo $username; // যদি $_GET['username'] সেট না থাকে, তাহলে আউটপুট হবে: Guest
?>এখানে, $_GET['username'] সেট করা থাকলে তার মান $username এ থাকবে। আর সেট করা না থাকলে 'Guest' ডিফল্ট মান হিসেবে $username এ থাকবে।
২. কোড সংক্ষিপ্ত করা
Null Coalescing Operator ব্যবহার করে কোড আরও সংক্ষিপ্ত করা যায়। নিচের দুটি উদাহরণে একই কাজ করা হয়েছে, তবে ?? অপারেটর ব্যবহার করার মাধ্যমে কোড সংক্ষিপ্ত হয়েছে।
<?php
// Without Null Coalescing Operator
if (isset($_POST['name'])) {
$name = $_POST['name'];
} else {
$name = 'Anonymous';
}
echo $name; // আউটপুট হবে: $_POST['name'] এর মান, যদি সেট থাকে, না হলে 'Anonymous'
// With Null Coalescing Operator
$name = $_POST['name'] ?? 'Anonymous';
echo $name;
?>৩. একাধিক Null Coalescing Operator ব্যবহার
আপনি একাধিক ?? অপারেটরও ব্যবহার করতে পারেন। এটি প্রথমে বামদিকের মান চেক করবে, যদি সেটি null হয়, তবে পরবর্তী মান চেক করবে।
<?php
$name = $_POST['name'] ?? $_GET['name'] ?? 'Guest';
echo $name; // $_POST['name'] সেট থাকলে সেটির মান নেবে, না থাকলে $_GET['name'] নেবে, তাও না থাকলে 'Guest'
?>এখানে, $_POST['name'] সেট না থাকলে, $_GET['name'] এর মান নেয়া হবে। যদি সেটিও না থাকে, তাহলে 'Guest' ডিফল্ট মান হিসেবে ব্যবহার হবে।
Null Coalescing Operator এর সুবিধা
- কোড সংক্ষিপ্ত করা:
??অপারেটর ব্যবহার করে দীর্ঘisset()চেকিং এড়ানো যায় এবং কোড আরও সহজ ও সংক্ষিপ্ত হয়। - ডিফল্ট মান নিশ্চিত করা: এটি সহজেই ডিফল্ট মান নির্ধারণে সহায়ক, বিশেষ করে তখন যখন কোনো ভেরিয়েবল
nullহতে পারে। - কোড রিডেবিলিটি বৃদ্ধি: Null Coalescing Operator কোডকে আরো সহজবোধ্য এবং রিডেবল করে তোলে, বিশেষ করে একাধিক অপারেন্ড চেক করার ক্ষেত্রে।
Null Coalescing Operator এবং Ternary Operator এর পার্থক্য
Ternary Operator ?: এবং Null Coalescing Operator ?? এর মধ্যে পার্থক্য হলো:
Ternary Operator: এটি একটি condition চেক করে। যদি condition সত্য হয়, তবে প্রথম অপারেন্ড ব্যবহার করবে, অন্যথায় দ্বিতীয় অপারেন্ড।
$result = isset($name) ? $name : 'Guest';Null Coalescing Operator: এটি শুধু null চেক করে। যদি প্রথম অপারেন্ড সেট থাকে এবং
nullনা হয়, তাহলে সেটির মান নেয়, অন্যথায় দ্বিতীয় অপারেন্ড ব্যবহার করে।$result = $name ?? 'Guest';
সারসংক্ষেপ
Null Coalescing Operator (??) PHP 7-এ একটি সহজ এবং কার্যকর অপারেটর, যা ভেরিয়েবলের null চেক করে ডিফল্ট মান সেট করতে ব্যবহৃত হয়। এটি কোডকে সংক্ষিপ্ত এবং পড়তে সহজ করে তোলে এবং বিশেষভাবে ডিফল্ট মান নির্ধারণের ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে। Ternary Operator এর তুলনায় ?? অপারেটর সরাসরি null চেক করে কাজটি সহজ করে।
Read more