Spaceship Operator (স্পেসশিপ অপারেটর)

পিএইচপি (PHP 7) - Computer Programming

307

Spaceship Operator (স্পেসশিপ অপারেটর), PHP 7-এ পরিচিত একটি নতুন অপারেটর যা তুলনা করতে ব্যবহৃত হয়। এটি <= > এই চিহ্ন দিয়ে প্রকাশিত হয়, এবং একে অনেক সময় ত্রিমাত্রিক তুলনা অপারেটর বা Combined Comparison Operator বলা হয়।

স্পেসশিপ অপারেটর ( <=> ) দুইটি মানের মধ্যে তুলনা করে এবং নিম্নলিখিত তিনটি ফলাফল প্রদান করে:

  1. যদি প্রথম মানটি দ্বিতীয় মানের চেয়ে ছোট হয়, তাহলে -1 প্রদান করে।
  2. যদি দুই মান সমান হয়, তাহলে 0 প্রদান করে।
  3. যদি প্রথম মানটি দ্বিতীয় মানের চেয়ে বড় হয়, তাহলে 1 প্রদান করে।

এই অপারেটরটি সংক্ষিপ্ত এবং কার্যকরীভাবে তুলনা কাজ সম্পন্ন করতে সহায়ক।


স্পেসশিপ অপারেটরের ব্যবহার

স্পেসশিপ অপারেটরটি সংখ্যা, স্ট্রিং এবং অ্যারের তুলনা করতে ব্যবহার করা যায়। এটি বিশেষ করে সর্টিং অ্যালগরিদম এবং শর্তমূলক তুলনায় খুবই উপকারী।


স্পেসশিপ অপারেটর ব্যবহার করে সংখ্যা তুলনা

<?php
echo 5 <=> 10;  // আউটপুট: -1, কারণ 5 ছোট 10 এর চেয়ে
echo 10 <=> 10; // আউটপুট: 0, কারণ 10 সমান 10 এর
echo 15 <=> 10; // আউটপুট: 1, কারণ 15 বড় 10 এর চেয়ে
?>

স্পেসশিপ অপারেটর ব্যবহার করে স্ট্রিং তুলনা

স্ট্রিং তুলনা করার সময় স্পেসশিপ অপারেটর লেক্সিকোগ্রাফিক অর্ডার অনুসারে কাজ করে (অর্থাৎ অক্ষরের ক্রমানুসারে তুলনা করে)।

<?php
echo "apple" <=> "banana";  // আউটপুট: -1, কারণ "apple" লেক্সিকোগ্রাফিক্যালি ছোট "banana" এর চেয়ে
echo "banana" <=> "banana"; // আউটপুট: 0, কারণ "banana" সমান "banana" এর
echo "cherry" <=> "banana"; // আউটপুট: 1, কারণ "cherry" বড় "banana" এর চেয়ে
?>

স্পেসশিপ অপারেটর ব্যবহার করে অ্যারে তুলনা

স্পেসশিপ অপারেটর অ্যারের সাথে ব্যবহার করলে অ্যারের এলিমেন্টগুলির তুলনা করে।

<?php
echo [1, 2, 3] <=> [1, 2, 4];  // আউটপুট: -1, কারণ প্রথম অ্যারের শেষ এলিমেন্ট 3, যা ছোট 4 এর চেয়ে
echo [1, 2, 3] <=> [1, 2, 3];  // আউটপুট: 0, কারণ উভয় অ্যারেই সমান
echo [1, 3, 3] <=> [1, 2, 3];  // আউটপুট: 1, কারণ দ্বিতীয় এলিমেন্টে 3 বড় 2 এর চেয়ে
?>

স্পেসশিপ অপারেটরের সুবিধা

  1. সরল এবং কার্যকরী কোড: স্পেসশিপ অপারেটর if-else শর্ত ছাড়াই তুলনা সম্পন্ন করে কোডকে সহজ করে।
  2. সর্টিং অ্যালগরিদমে সহায়ক: স্পেসশিপ অপারেটর সর্টিং ফাংশন (যেমন usort()) এ সরাসরি ব্যবহার করা যায়।
  3. সংক্ষেপিত এবং দ্রুত তুলনা: এটি একাধিক শর্ত দিয়ে তৈরি তুলনামূলক লজিককে সরল করে এবং কার্যকরীভাবে পরিচালনা করে।

স্পেসশিপ অপারেটর ব্যবহার করে সর্টিং উদাহরণ

স্পেসশিপ অপারেটর ব্যবহার করে সর্টিং করা যায়, যেখানে এটি প্রত্যেক উপাদান তুলনার ফলাফল প্রদান করে।

<?php
$numbers = [3, 1, 4, 1, 5, 9, 2, 6];

usort($numbers, function($a, $b) {
    return $a <=> $b;
});

print_r($numbers);  // আউটপুট: Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 9 )
?>

এখানে usort ফাংশনে স্পেসশিপ অপারেটর ব্যবহার করে $numbers অ্যারেকে এসেন্ডিং অর্ডারে সর্ট করা হয়েছে।


সারসংক্ষেপ

স্পেসশিপ অপারেটর ( <=> ) PHP 7 এ একটি সহজ এবং কার্যকরী তুলনা অপারেটর, যা দুই মানের মধ্যে তুলনা করে -1, 0, বা 1 রিটার্ন করে। এটি সংখ্যা, স্ট্রিং এবং অ্যারের তুলনায় কার্যকর এবং সর্টিং অ্যালগরিদমে ব্যবহারের জন্য উপযোগী। স্পেসশিপ অপারেটর কোডকে সংক্ষিপ্ত, পরিষ্কার এবং কার্যকর করে তোলে, যা PHP-তে সর্টিং এবং তুলনার কাজগুলোকে সহজ করে।

Content added By

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 এর সুবিধা

  1. কোডের সরলতা: Spaceship Operator if শর্ত ব্যবহার না করে এক লাইনে তুলনা করতে দেয়।
  2. কোড রিডেবিলিটি: <=> অপারেটরটি কোডকে সহজ এবং পড়তে সুবিধাজনক করে তোলে।
  3. কাস্টম সটিং: sort বা usort এর মতো ফাংশনে কাস্টম ক্রমবিন্যাসে সহায়ক।
  4. সংক্ষিপ্ত এবং কার্যকর কোড: এটি কোডকে সংক্ষিপ্ত করে এবং কার্যকরভাবে তুলনা করতে সহায়ক হয়।

সারসংক্ষেপ

Spaceship Operator (<=>) PHP 7-এর একটি শক্তিশালী অপারেটর, যা দুটি মান তুলনা করতে এবং কোডকে সরল করতে ব্যবহৃত হয়। এটি সহজেই sort, usort ইত্যাদির মধ্যে কাস্টম সটিং করতে সহায়ক। <=> অপারেটর তিনটি মান রিটার্ন করে—-1, 0, বা 1—যা কোডকে আরও সংক্ষিপ্ত ও রিডেবল করে তোলে।

Content added By

PHP 7-এ Spaceship Operator (<=>) যোগ করা হয়েছে, যা তুলনা এবং সাজানোর অপারেশনগুলির জন্য ব্যবহৃত হয়। এটি একটি শক্তিশালী এবং সহজ অপারেটর, যা দুটি মানের মধ্যে তুলনা করতে সহায়ক। এটি তিনটি ফলাফল ফিরিয়ে দেয়, যা সহজে তুলনা করার জন্য ব্যবহৃত হতে পারে।

Spaceship Operator (<=>) কী?

Spaceship Operator একটি ট্রিপল অপারেটর যা দুটি মানের তুলনা করে এবং ফলস্বরূপ নিম্নলিখিত ফলাফল প্রদান করে:

  • -1 যদি প্রথম মান দ্বিতীয় মানের চেয়ে ছোট হয়।
  • 0 যদি প্রথম মান দ্বিতীয় মানের সমান হয়।
  • 1 যদি প্রথম মান দ্বিতীয় মানের চেয়ে বড় হয়।

এটি সাধারণত comparison এবং sorting অপারেশনে ব্যবহৃত হয় এবং এটি কোডকে আরও পরিষ্কার এবং সংক্ষিপ্ত করে তোলে।

Spaceship Operator (<=>) ব্যবহার

১. Comparison অপারেশন

Spaceship operator ব্যবহার করে দুটি মানের মধ্যে তুলনা করা খুব সহজ। নিচে একটি উদাহরণ দেওয়া হলো:

<?php
$a = 5;
$b = 10;

echo $a <=> $b;  // আউটপুট হবে: -1, কারণ 5, 10 থেকে ছোট
?>

এখানে, $a (5) এবং $b (10) এর মধ্যে তুলনা করা হয়েছে। যেহেতু $a $b থেকে ছোট, এটি -1 রিটার্ন করবে।

২. Sorting Operations

Spaceship Operator সাধারণত অ্যারে সাজানোর জন্য খুব কার্যকরী। usort() বা array_multisort() ফাংশনের সাথে এটি ব্যবহার করে অ্যারের মানের তুলনা করা যায় এবং সেগুলিকে সাজানো যায়।

অ্যারে সাজানোর উদাহরণ (Ascending Order):

<?php
$array = [5, 2, 8, 3, 1];

usort($array, function($a, $b) {
    return $a <=> $b;
});

print_r($array);  // আউটপুট হবে: [1, 2, 3, 5, 8]
?>

এখানে, usort() ফাংশনটি অ্যারের মধ্যে দুটি উপাদান $a এবং $b তুলনা করার জন্য spaceship operator ব্যবহার করছে। এটি অ্যারেটিকে ascending order-এ সাজায়।

অ্যারে সাজানোর উদাহরণ (Descending Order):

<?php
$array = [5, 2, 8, 3, 1];

usort($array, function($a, $b) {
    return $b <=> $a;
});

print_r($array);  // আউটপুট হবে: [8, 5, 3, 2, 1]
?>

এখানে, একইভাবে, কিন্তু $b <=> $a ব্যবহার করে, অ্যারেটি descending order-এ সাজানো হয়েছে।


Spaceship Operator এর সুবিধা

  1. সহজ এবং সংক্ষিপ্ত: সাধারণ তুলনা অপারেটর যেমন > বা < এর তুলনায় Spaceship Operator কোডকে সংক্ষিপ্ত এবং পরিষ্কার করে।
  2. তুলনা ফাংশনের জন্য ইউনিফর্ম সমাধান: Spaceship অপারেটরটি তুলনা ফাংশনের জন্য একটি সহজ এবং স্ট্যান্ডার্ড সমাধান প্রদান করে।
  3. কাস্টম কম্পেয়ার ফাংশন ব্যবহার করা সহজ: যখন আপনি কাস্টম অ্যারে সাজানোর জন্য ব্যবহার করেন, তখন Spaceship Operator সহজে ব্যবহারযোগ্য হয়।
  4. পরফরমেন্স: Spaceship অপারেটর ব্যবহার করলে কোডের পারফরম্যান্স সাধারণ তুলনা অপারেটরের তুলনায় কিছুটা উন্নত হতে পারে, কারণ এটি ট্রিপল ফলাফল প্রদান করে, যা একটি তুলনা কাজের জন্য কম খরচে এবং দ্রুত হতে পারে।

সারসংক্ষেপ

PHP 7-এ Spaceship Operator (<=>) একটি সহজ এবং শক্তিশালী অপারেটর যা দুটি মানের তুলনা করার জন্য ব্যবহৃত হয় এবং এটি comparisonsorting অপারেশনগুলির জন্য খুবই উপকারী। এটি তিনটি ফলাফল রিটার্ন করে (যেমন -1, 0, 1) এবং তুলনা, সাজানো এবং ফিল্টারিং অপারেশনগুলির জন্য একটি পরিষ্কার এবং সংক্ষিপ্ত সমাধান প্রদান করে।

Content added By

Array এবং Object Comparison PHP-তে দুটি ভিন্ন ধরনের ডেটা স্ট্রাকচার এবং সেগুলির তুলনা করার জন্য নির্দিষ্ট কৌশল ব্যবহৃত হয়। এটি গুরুত্বপূর্ণ কারণ PHP-তে অ্যারে এবং অবজেক্টের তুলনা করা গেলে তাদের মধ্যে পার্থক্য থাকতে পারে এবং সঠিকভাবে তুলনা না করলে কোডের ত্রুটি বা অপ্রত্যাশিত ফলাফল আসতে পারে।

এখন, চলুন PHP তে Array এবং Object তুলনা (comparison) করার পদ্ধতিগুলি দেখি।


১. Array Comparison (অ্যারে তুলনা)

PHP-তে অ্যারে তুলনা করতে == এবং === অপারেটর দুটি ব্যবহৃত হয়।

== (Equality Comparison) অপারেটর

এটি দুটি অ্যারের মান তুলনা করে, তবে অর্ডার গুরুত্বপূর্ণ নয়। যদি দুটি অ্যারে একই কন্টেন্ট ধারণ করে তবে তারা সমান ধরা হয়, যদিও তাদের মধ্যে অর্ডার ভিন্ন হতে পারে।

উদাহরণ:

<?php
$array1 = [1, 2, 3];
$array2 = [1, 2, 3];

if ($array1 == $array2) {
    echo "Arrays are equal";  // আউটপুট হবে: Arrays are equal
} else {
    echo "Arrays are not equal";
}
?>

এখানে, $array1 এবং $array2 একে অপরের সমান কারণ তাদের মধ্যে মান একীভূত।

=== (Identity Comparison) অপারেটর

এটি দুটি অ্যারের মান এবং অর্ডার উভয়ই তুলনা করে। যদি অ্যারের মান এবং অর্ডার একে অপরের সমান হয়, তখনই তারা সমান ধরা হয়।

উদাহরণ:

<?php
$array1 = [1, 2, 3];
$array2 = [1, 2, 3];
$array3 = [3, 2, 1];

if ($array1 === $array2) {
    echo "Arrays are identical";  // আউটপুট হবে: Arrays are identical
} else {
    echo "Arrays are not identical";
}

if ($array1 === $array3) {
    echo "Arrays are identical";
} else {
    echo "Arrays are not identical";  // আউটপুট হবে: Arrays are not identical
}
?>

এখানে, $array1 এবং $array2 একে অপরের সমান এবং তাদের অর্ডারও এক, তাই তারা identical। কিন্তু $array3 এর অর্ডার ভিন্ন হওয়ায় এটি not identical


২. Object Comparison (অবজেক্ট তুলনা)

অবজেক্ট তুলনায়, PHP দুটি প্রধান তুলনা অপারেটর ব্যবহার করে: == এবং **===**। তবে, এগুলি অ্যারে তুলনার চেয়ে একটু আলাদা। == অপারেটর দুটি অবজেক্টের প্রপার্টি এবং মান তুলনা করে, কিন্তু === অপারেটর দুটি অবজেক্টের ইন্সট্যান্স এবং প্রপার্টি (অথবা মান) উভয়কেই চেক করে।

== (Equality Comparison) অপারেটর

এটি দুটি অবজেক্টের প্রপার্টি এবং মান তুলনা করে। যদি দুটি অবজেক্টের প্রপার্টি এবং মান সমান হয়, তাহলে তারা সমান ধরা হয়।

উদাহরণ:

<?php
class Person {
    public $name;
    public $age;

    function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$person1 = new Person("John", 25);
$person2 = new Person("John", 25);

if ($person1 == $person2) {
    echo "Objects are equal";  // আউটপুট হবে: Objects are equal
} else {
    echo "Objects are not equal";
}
?>

এখানে, $person1 এবং $person2 এর name এবং age প্রপার্টি সমান হওয়ায় তাদের মান সমান ধরা হয়। তবে, তাদের ইন্সট্যান্স আলাদা।

=== (Identity Comparison) অপারেটর

এটি দুটি অবজেক্টের ইন্সট্যান্স এবং প্রপার্টি/মান উভয়ই তুলনা করে। অর্থাৎ, দুটি অবজেক্ট যদি একই ইন্সট্যান্সের অংশ না হয়, তবে তারা কখনোই সমান হবে না, যদিও তাদের প্রপার্টি এবং মান সমান হতে পারে।

উদাহরণ:

<?php
$person1 = new Person("John", 25);
$person2 = new Person("John", 25);

if ($person1 === $person2) {
    echo "Objects are identical";
} else {
    echo "Objects are not identical";  // আউটপুট হবে: Objects are not identical
}
?>

এখানে, যদিও $person1 এবং $person2 এর প্রপার্টি এবং মান এক, তারা not identical কারণ তারা দুটি আলাদা ইন্সট্যান্স।


Array vs Object Comparison Summary

বৈশিষ্ট্যঅ্যারে তুলনাঅবজেক্ট তুলনা
== (Equality Comparison)অ্যারের মান তুলনা করে, অর্ডার গুরুত্বপূর্ণ নয়অবজেক্টের প্রপার্টি এবং মান তুলনা করে
=== (Identity Comparison)অ্যারের মান এবং অর্ডার তুলনা করেঅবজেক্টের ইন্সট্যান্স এবং প্রপার্টি তুলনা করে
অর্থঅ্যারে সমান হওয়ার জন্য মান এক হতে হবে, অর্ডার গুরুত্বপূর্ণ নয়অবজেক্ট সমান হওয়ার জন্য তাদের প্রপার্টি এবং মান এক হতে হবে, তবে তারা আলাদা ইন্সট্যান্স হতে পারে
ব্যবহারঅ্যারের ডাটা তুলনা করতে ব্যবহার করা হয়অবজেক্টের তুলনা করার জন্য ব্যবহার করা হয়

সারসংক্ষেপ

Array Comparison এবং Object Comparison PHP-তে বিভিন্ন কৌশল ব্যবহার করে করা হয়। অ্যারে তুলনা করার সময়, == এবং === ব্যবহার করলে অ্যারের মান এবং অর্ডার চেক করা হয়। অন্যদিকে, অবজেক্ট তুলনা করার সময়, == দুটি অবজেক্টের প্রপার্টি এবং মান চেক করে, এবং === দুটি অবজেক্টের ইন্সট্যান্স এবং প্রপার্টি উভয়ই চেক করে। PHP-তে এই দুটি ধরনের তুলনা আপনাকে ডেটার সঠিকতা এবং কোডের নির্ভুলতা নিশ্চিত করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...