সংজ্ঞা এবং ব্যবহার
PHP-তে, অবজেক্ট (Object) একটি কমপাউন্ড (compound) ডেটা টাইপ (অ্যারে ছাড়া)। এর মাধ্যমে একাধিক টাইপের মান একটি ভেরিয়েবলে একসাথে সংরক্ষণ করা যায়। অবজেক্ট হলো বিল্ট-ইন বা ইউজার-ডিফাইনড ক্লাসের একটি ইনস্ট্যান্স। প্রোপার্টির পাশাপাশি ক্লাস ডেটার সাথে জড়িত ফাংশনালিটি ও ডিফাইন করে।
প্রাইমারি (স্কেলার) ভেরিয়েবল, অ্যারে এবং অন্যান্য অবজেক্ট কাস্টিং অপারেটর দিয়ে অবজেক্ট ডেটা টাইপে কনভার্ট করা যায়। PHP stdClass নামে একটি জেনেরিক খালি ক্লাস প্রদান করে যা ডাইনামিক্যালি প্রোপার্টি যোগ করতে এবং কাস্টিংয়ের জন্য উপকারী।
সিনট্যাক্স
একটি ক্লাসের অবজেক্ট ডিক্লেয়ার করতে new স্টেটমেন্ট ব্যবহার করতে হয়—
class myclass { .. .. } $obj=new myclass;
উদাহরণ
<?php class SayHello{ function hello(){ echo "Hello World"; } } $obj=new SayHello; $obj->hello(); ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
Hello World
stdClass অবজেক্ট প্রাথমিকভাবে null থাকে। এতে ডাইনামিক্যালি প্রোপার্টি যোগ করা যায়—
উদাহরণ
<?php $obj=new stdClass; $obj->name="Deepak"; $obj->age=21; $obj->marks=75; print_r($obj); ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
stdClass Object( [name] => Deepak [age] => 21 [marks] => 75 )
অ্যারেকে অবজেক্টে টাইপকাস্ট করা যায়—
উদাহরণ
<?php $arr=array("name"=>"Deepak", "age"=>21, "marks"=>75); $obj=(object)$arr; print_r($obj); ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
stdClass Object( [name] => Deepak [age] => 21 [marks] => 75 )
বিপরীতভাবে, একটি অবজেক্টকে অ্যারেতে কাস্ট করা যায়—
উদাহরণ
<?php $obj=new stdClass; $obj->name="Deepak"; $obj->age=21; $obj->marks=75; $arr=(array)$obj; print_r($arr); ?>
আউটপুট
এটি নিচের ফলাফল দেবে—
Array( [name] => Deepak [age] => 21 [marks] => 75 )যেকোনো স্কেলার টাইপের ভেরিয়েবলও টাইপ কাস্টিং দিয়ে অবজেক্টে কনভার্ট করা যায়। স্কেলার ভেরিয়েবলের মান অবজেক্টের scalar প্রোপার্টির মান হয়ে যায়।
উদাহরণ
<?php $name="Deepak"; $age=21; $percent=75.50; $obj1=(object)$name; print_r($obj1); $obj2=(object)$age; print_r($obj2); $obj3=(object)$percent; print_r($obj3); ?>আউটপুট
এটি নিচের ফলাফল দেবে—
stdClass Object( [scalar] => Deepak ) stdClass Object( [scalar] => 21 ) stdClass Object( [scalar] => 75.5 )