কম্পিউটার টিউটোরিয়াল

PHP ক্লাস এবং অবজেক্টের মূলভূত ধারণা


ভূমিকা

ক্লাস PHP-তে একটি ইউজার-ডিফাইন্ড ডেটা টাইপ। একটি নতুন ক্লাস ডিফাইন করার জন্য PHP class কিওয়ার্ড প্রদান করে, जिसके পর একটি নাম থাকে। PHP-এর নেমিং কনভেনশন অনুযায়ী যেকোনো বৈধ লেবেল (PHP-এর রিজার্ভড ওয়ার্ড বাদে) ক্লাসের নাম হিসেবে ব্যবহার করা যায়। ক্লাসের উপাদানগুলো ক্লাসের নামের পর 오는 কার্লি ব্র্যাকেটের ভিতরে ডিফাইন করা হয়।

সিনট্যাক্স

class myclass{
    // 
}

ক্লাসে কনস্ট্যান্ট, ভেরিয়েবল বা প্রপার্টি এবং মেথড থাকতে পারে — মেথডগুলো ফাংশনের মতো।

ক্লাসের উদাহরণ

এই উদাহরণটি দেখায় কিভাবে একটি ক্লাস ডিফাইন করা হয়:

উদাহরণ

<?php
class myclass{
    const MYCONSTANT=100;
    public $var1="Hello";
    function dispvar(){
        echo $this->var1;
    }
}
?>

ক্লাসের ভিতরে ডিফাইন করা ফাংশনকে মেথড বলা হয়। কলিং অবজেক্টের কনটেক্সট একটি মেথডের ভিতরে একটি সুডো-ভেরিয়েবল $this দিয়ে উপলব্ধ থাকে। যদি মেথড স্ট্যাটিক হিসেবে ডিফাইন করা হয়, তবে সেটি ক্লাসের নাম দিয়ে অ্যাক্সেস করা হয়। নন-স্ট্যাটিক মেথড স্ট্যাটিক্যালি কল করা PHP 7-এ ডিপ্রিকেটেড।

new অপারেটর দিয়ে দেওয়া ক্লাসের একটি নতুন অবজেক্ট ডিক্লেয়ার করা হয়। ক্লাসের নাম প্যারেনথেসিসহ new কিওয়ার্ডের সামনে উল্লেখ করতে হয়। যদি প্যারেনথেসিসের ভিতরে কোনো আর্গুমেন্ট না থাকে, একটি অনইনিশিয়ালাইজড অবজেক্ট (বা প্রপার্টিগুলোর ডিফল্ট ভ্যালু সহ) তৈরি হয়। যদি ক্লাস প্যারামিটারসহ কনস্ট্রাক্টর ডিফাইন করে থাকে, তাহলে মিলিত সংখ্যক আর্গুমেন্ট দিতে হবে। ইনস্ট্যান্স (বা অবজেক্ট) তৈরি করার আগে ক্লাস অবশ্যই ডিফাইন করা থাকতে হবে।

উদাহরণ

<?php
class myclass{
    const MYCONSTANT=100;
    public $var1="Hello";
    function dispvar(){
        echo $this->var1;
    }
}
$obj=new myclass();
$obj->dispvar();
?>

আউটপুট

এটি নিচের ফলাফল তৈরি করবে:

Hello

  1. PHP-তে অ্যাবস্ট্রাকশন (Abstraction) এবং এনক্যাপসুলেশন (Encapsulation) এর পার্থক্য

  2. PHP-তে ফাইনাল ক্লাস ও ফাইনাল মেথড ব্যাখ্যা

  3. PHP-এ is_a() ফাংশন

  4. PHP-এ get_class() ফাংশন