Spaceship Operator (<=>) PHP 7-এ প্রবর্তিত একটি নতুন অপারেটর, যা দুটি মানের মধ্যে তুলনা করতে ব্যবহৃত হয়। এটি বিশেষভাবে sort বা usort এর মতো ফাংশনগুলিতে সুবিধাজনক। Spaceship Operator-কে Combined Comparison Operator নামেও ডাকা হয়, কারণ এটি তিনটি ভিন্ন মান রিটার্ন করতে পারে, নির্ভর করে প্রথম মানটি দ্বিতীয় মানের তুলনায় ছোট, সমান, বা বড় কিনা।
Spaceship Operator (<=>) এর কাজ
<=> অপারেটরটি দুটি মান তুলনা করে এবং তিনটি ভিন্ন ফলাফল দিতে পারে:
- যদি বাম দিকের মান ছোট হয়, তাহলে -1 রিটার্ন করে।
- যদি বাম ও ডান দিকের মান সমান হয়, তাহলে 0 রিটার্ন করে।
- যদি বাম দিকের মান বড় হয়, তাহলে 1 রিটার্ন করে।
সাধারণ গঠন:
$result = $a <=> $b;Spaceship Operator এর উদাহরণ
১. সাধারণ উদাহরণ
<?php
echo 5 <=> 10; // আউটপুট হবে: -1, কারণ 5 ছোট 10 এর তুলনায়
echo 10 <=> 10; // আউটপুট হবে: 0, কারণ 10 সমান 10 এর সাথে
echo 15 <=> 10; // আউটপুট হবে: 1, কারণ 15 বড় 10 এর তুলনায়
?>২. String তুলনায় ব্যবহার
Spaceship Operator স্ট্রিংগুলির তুলনা করতেও ব্যবহৃত হতে পারে।
<?php
echo "apple" <=> "banana"; // আউটপুট হবে: -1, কারণ 'apple' বর্ণমালায় 'banana' এর আগে আসে
echo "apple" <=> "apple"; // আউটপুট হবে: 0, কারণ দুটি স্ট্রিং সমান
echo "banana" <=> "apple"; // আউটপুট হবে: 1, কারণ 'banana' বর্ণমালায় 'apple' এর পরে আসে
?>৩. Array Sorting এ Spaceship Operator ব্যবহার
Spaceship Operator usort() ফাংশনের মধ্যে কাস্টম তুলনায়ও ব্যবহৃত হতে পারে, যা একটি অ্যারেকে নির্দিষ্ট ক্রমে সাজাতে সহায়ক।
<?php
$numbers = [3, 2, 5, 1, 4];
// ছোট থেকে বড় ক্রমে সাজানো
usort($numbers, function($a, $b) {
return $a <=> $b;
});
print_r($numbers); // আউটপুট হবে: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
// বড় থেকে ছোট ক্রমে সাজানো
usort($numbers, function($a, $b) {
return $b <=> $a;
});
print_r($numbers); // আউটপুট হবে: Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 )
?>এখানে, usort() ফাংশনে <=> ব্যবহার করে আমরা ছোট থেকে বড় এবং বড় থেকে ছোট সাজাতে পেরেছি।
৪. অ্যাসোসিয়েটিভ অ্যারেতে ব্যবহার
অ্যাসোসিয়েটিভ অ্যারের ভ্যালু বা কী ব্যবহার করেও <=> অপারেটর দিয়ে কাস্টম সটিং করা যায়।
<?php
$people = [
["name" => "John", "age" => 30],
["name" => "Alice", "age" => 25],
["name" => "Bob", "age" => 35],
];
// বয়স অনুসারে ছোট থেকে বড় ক্রমে সাজানো
usort($people, function($a, $b) {
return $a['age'] <=> $b['age'];
});
print_r($people);
?>এখানে, $people অ্যারেটি age এর উপর ভিত্তি করে ছোট থেকে বড় ক্রমে সাজানো হয়েছে।
Spaceship Operator এর সুবিধা
- কোডের সরলতা: Spaceship Operator
ifশর্ত ব্যবহার না করে এক লাইনে তুলনা করতে দেয়। - কোড রিডেবিলিটি:
<=>অপারেটরটি কোডকে সহজ এবং পড়তে সুবিধাজনক করে তোলে। - কাস্টম সটিং:
sortবাusortএর মতো ফাংশনে কাস্টম ক্রমবিন্যাসে সহায়ক। - সংক্ষিপ্ত এবং কার্যকর কোড: এটি কোডকে সংক্ষিপ্ত করে এবং কার্যকরভাবে তুলনা করতে সহায়ক হয়।
সারসংক্ষেপ
Spaceship Operator (<=>) PHP 7-এর একটি শক্তিশালী অপারেটর, যা দুটি মান তুলনা করতে এবং কোডকে সরল করতে ব্যবহৃত হয়। এটি সহজেই sort, usort ইত্যাদির মধ্যে কাস্টম সটিং করতে সহায়ক। <=> অপারেটর তিনটি মান রিটার্ন করে—-1, 0, বা 1—যা কোডকে আরও সংক্ষিপ্ত ও রিডেবল করে তোলে।