পিএইচপি অবজেক্ট
অবজেক্ট হলো class
কর্তৃক সঙ্গায়িত ডেটা স্ট্রাকচার এর বিশেষ এক নিদর্শন(instance)। আপনি একটি ক্লাস(Class) একবার ডিফাইন করে এর অন্তর্গত অসংখ্য অবজেক্ট(Object) তৈরি করতে পারেন।
অবজেক্ট কি?
প্রসিডিউরাল(procedural) প্রোগ্রামিং স্টাইলে সকল ফাংশন এবং ভ্যারিয়েবলগুলো একত্রে গ্লোবাল স্কোপ((global scope) এর মধ্যে থাকে। এগুলোকে ব্যবহার করতে হলে শুধুমাত্র এদের নাম ধরে ডাকলেই হয়।
কিন্তু যখন আপনি ক্লাস ব্যবহার করবেন তখন ক্লাসের কোডসমুহ ক্লাসের বাইরের আলো বাতাস থেকে মুক্ত থাকে, অর্থাৎ অদৃশ্য অবস্থায় থাকে। তাই আপনি ক্লাসের কোডসমূহকে যখন-তখন অ্যাক্সেস করতে পারবেন না। কারণ ক্লাসের মধ্যে অবস্থিত কোডসমূহ ক্লাস স্কোপ দ্বারা এনক্যাপসুলেটেড(encapsulated) বা সুরক্ষিত হয়। এমতাবস্থায় ক্লাস এর কোডসমূহ অ্যাক্সেস করার একটি উপায় তো লাগবেই। আর এই উপায়টিই হলো ক্লাসের অবজেক্ট তৈরি।
আমরা একটি ক্লাস থেকে একাধিক অবজেক্ট তৈরি করতে পারি এবং অবজেক্টগুলো ক্লাসের প্রোপার্টি এবং মেথডসমূহকে অ্যাক্সেস(access) করতে পারে। ক্লাস থেকে তৈরি প্রতিটি অবজেক্ট একই প্রোপার্টি এবং মেথড ব্যবহার করলেও তাদের ভ্যালুসমূহ যথাক্রমে ভিন্ন হয়ে থাকে।
উপরের ছবিটি লক্ষ্য করুন, এখানে একটি ক্লাস থেকে কয়েকটি ভিন্ন মানের অবজেক্ট তৈরি করা হয়েছে।
অবজেক্টের মাধ্যমে প্রোপার্টি অ্যাক্সেস?
আপনি যদি ক্লাস এর প্রোপার্টিকে এক্সেস করতে চান তাহলে অবজেক্ট দ্বারা ঐ ক্লাসের অন্তর্গত প্রোপার্টি(property) গুলোকে অ্যাক্সেস করতে হবে। সুতরাং কোনো ক্লাস এর প্রোপার্টিকে অ্যাক্সেস করার জন্য প্রথমেই ঐ ক্লাসের একটি অবজেক্ট তৈরি করে নিতে হবে। তারপর ঐ অবজেক্টের নাম লিখে এবং এর ডানপাশে প্রোপার্টি এক্সেস(->) অপারেটর ব্যবহার করে প্রোপার্টি এক্সেস করা যাবে।
<?php
class Greeting{
public $welcomeMsg = "Welcome Guest<br>";
}
// Greeting ক্লাসের অবজেক্ট তৈরি
$greeting = new Greeting();
$message = new Greeting();
// অবজেক্টের মাধ্যমে প্রোপার্টি অ্যাক্সেস
echo $greeting->welcomeMsg;
echo $message->welcomeMsg;
?>
Welcome Guest
Welcome Guest
অবজেক্টের মাধ্যমে প্রোপার্টি সেট?
আমরা অবজেক্টের মাধ্যমে একটি ক্লাসের প্রোপার্টির মান সেট করতে পারি। যে প্রক্রিয়ায় আমরা ক্লাস থেকে অবজেক্টের মাধ্যমে প্রোপার্টিকে অ্যাক্সেস করেছি ঠিক একই প্রক্রিয়ায় আমরা অবজেক্টের মাধ্যমে একটি ক্লাসের প্রোপার্টির ভ্যালুও সেট করতে পারি।
সুতরাং আমরা অবজেক্টের মাধ্যমে ক্লাস এর প্রোপার্টিকে অ্যাক্সেস করে এবং অ্যাসাইনমেন্ট(=) অপারেটর ব্যবহার করে ক্লাসের প্রোপার্টিতে ভ্যালু সেট করতে পারবোঃ
<?php
class Greeting{
public $welcomeMsg = "Welcome Guest<br>";
}
// Greeting ক্লাসের অবজেক্ট তৈরি
$greeting = new Greeting();
$message = new Greeting();
echo $greeting->welcomeMsg;
// অবজেক্টের মাধ্যমে প্রোপার্টির ভ্যালু সেট
$message->welcomeMsg = "Bye Guest";
echo $message->welcomeMsg;
?>
Welcome Guest
Bye Guest
অবজেক্টের মাধ্যমে মেথড অ্যাক্সেস?
আমরা অবজেক্টের মাধ্যমে একটি ক্লাসের অন্তর্গত মেথডসমূহকে অ্যাক্সেস করতে পারি। প্রোপার্টি অ্যাক্সেস এর ন্যায় ক্লাস থেকে মেথড অ্যাক্সেস করার জন্যও প্রথমে আমরা ঐ ক্লাসের অবজেক্ট তৈরি করে নেব।
তারপর ঐ অবজেক্টের নাম লিখে এবং এর ডান পাশে প্রোপার্টি অ্যাক্সেস(->) অপারেটর ব্যবহার করে মেথডের নাম লিখে প্রথম বন্ধনী"()" ব্যবহার করবো।
অর্থাৎ যে প্রক্রিয়ায় আমরা একটি ফাংশনকে অ্যাক্সেস করি ঠিক একই প্রক্রিয়ায় আমরা অবজেক্টের মাধ্যমে একটি মেথডকেও অ্যাক্সেস করতে পারবোঃ
<?php
class Greeting{
public function message(){
echo "Welcome Guest";}
}
// ক্লাসের অবজেক্ট তৈরি
$greeting = new Greeting();
// অবজেক্টের মাধ্যমে মেথড অ্যাক্সেস
$greeting->message();
?>
Welcome Guest