পিএইচপি এসকিউএল ওয়ার্ডপ্রেস জাভাস্ক্রিপ্ট জেকুয়েরি এইচটিএমএল
ফোরাম
×

পিএইচপি টিউটোরিয়াল

হোম-HOME পরিচিতি-Introduction ইনস্টল-Install গঠনপ্রনালী-Syntax চলক-Variable পিএইচপি Echo / Print তথ্যের ধরণ-Data Types কনস্ট্যান্ট-Constant অপারেটর-Operator ফাংশন-Function সুপারগ্লোভাল-Superglobal

কন্ট্রোল স্টেটমেন্ট

if স্টেটমেন্ট if...Else স্টেটমেন্ট Switch স্টেটমেন্ট While লুপ DO...While লুপ For লুপ

পিএইচপি এ্যারে এবং স্ট্রিং

এ্যারে-Array এ্যারে সর্টিং -Array Sorting মাল্টি এ্যারে-Multi Array স্ট্রিং-String

পিএইচপি এডভান্স

তারিখ এবং সময় পিএইচপি include ফাইল হ্যান্ডলিং-File Handling ফাইল খোলা/পড়া ফাইল তৈরি/লিখা ফাইল আপলোড ফাইল ডাউনলোড কুকি-Cookie সেশন-Session ফিল্টার-Filter এডভান্স ফিল্টার-Advance Filter এঁরর হ্যান্ডলিং-Error Handling এক্সেপশন হ্যান্ডেলিং-Exception Handling

পিএইচপি ফরম

ফরম হ্যান্ডলিং ফরম ভ্যালিডেশন আবশ্যক ফরম ফিল্ড ফরম URL/E-mail সম্পূর্ণ ফরম

MySQL ডেটাবেজ

MySQL ডেটাবেজ MySQL ডেটাবেজ সংযোগ MySQL ডেটাবেজ তৈরী MySQL টেবিল তৈরী MySQL তথ্য ইনসার্ট MySQL শেষ আইডি পান MySQL একাধিক তথ্য ইনসার্ট MySQL প্রিপেয়ার্ড স্টেটমেন্ট MySQL তথ্য সিলেক্ট MySQL তথ্য ডিলিট MySQL তথ্য আপডেট MySQL সীমিত তথ্য সিলেক্ট

পিএইচপি- এক্সএমএল

PHP XML Parser PHP SimpleXML Parser PHP XML Parser PHP SimpleXML - Get PHP XML Expat PHP XML Dom

পিএইচপি - এজাক্স

পিএইচপি AJAX পরিচিতি AJAX পিএইচপি AJAX ডেটাবেজ AJAX এক্সএমএল AJAX সারাসরি সার্চ AJAX RSS রির্ডার AJAX Poll

পিএইচপি অবজেক্ট অরিয়েন্টেড প্রোগ্রামিং(OOP)

OOP পরিচিতি OOP class তৈরী OOP objects তৈরী OOP $this কিওয়ার্ড OOP মেথড এবং প্রোপার্টি চেইনিং OOP অ্যাক্সেস মোডিফায়ার OOP ম্যাজিক মেথড এবং কন্সটেন্ট OOP ইনহেরিটেন্স OOP Abstract class এবং method OOP ইন্টারফেস OOP পলিমরফিজম OOP টাইপ হিন্টিং() OOP টাইপ হিন্টিনং ইন্টারফেস OOP স্ট্যাটিক মেথোড এবং প্রোপার্টি

 

পিএইচপি OOP Class


Class প্রোগ্রামার-ডিফাইন্ড ডেটা টাইপ। যার মধ্যে লোকাল ডেটা এবং লোকাল ফাংশন থাকে। আপনি একটি class কে টেমপ্লেট হিসাবে ধরে একই ধরনের অনেক অবজেক্ট(instance of class) তৈরি করতে পারেন।


কিভাবে class তৈরি করবেন?

একটি class তৈরির জন্য অনেক গুলো কোড এর সমন্বয়ে একটি গ্রুপ অব কোড তৈরি করতে হবে যার মাধ্যমে আপনি একটি নির্দিষ্ট বিষয়কে হ্যান্ডেল বা পরিচালনা করতে পারবেন।

যেমন- একটি ব্লগ এর কথাই ধরুন। আপনি ব্লগের ইউজার সংক্রান্ত সকল কোড এর সমন্বয়ে একটি class, পোস্ট সম্পর্কিত সকল কোড এর সমন্বয়ে অন্য একটি class এবং কমেন্ট সম্পর্কিত সকল কোড এর সমন্বয়ে ভিন্ন আরেকটি class ক্লাস তৈরি করতে পারেন।

কোডের গ্রুপ নিয়ে class তৈরি করলে কোড শুধু পুনঃব্যবহারযোগ্যই হয় না, বরং কোডগুলো পরিচর্যা এবং পরিবর্তন করাও সহজ হয়ে যায়।

class নামকরণঃ একটি class এর নামকরন এর জন্য একটি একক নাম ব্যবহার করা হয়। Class এর নাম এর প্রথম বর্ণটি বড় হাতের হতে হয়।

উদাহরণস্বরূপঃ আমরা ব্লগের ইউজার নিয়ন্ত্রণ এর কোড গ্রুপ নিয়ে একটি User ক্লাস, পোস্ট নিয়ন্ত্রণের কোড গ্রুপ নিয়ে একটি Post ক্লাস এবং কমেন্ট এর কোড গ্রুপ নিয় একটি Comment ক্লাস তৈরি করতে পারি।

Class তৈরির সিনট্যাক্সঃ

<?php
class ClassName{
// এখানে প্রোপার্টি যোগ করূন // এখানে মেথড যোগ করুন } ?>

এখানে আমরা class কিওয়ার্ড এর মাধ্যমে ClassName নামে একটি ক্লাস ডিফাইন করেছি। class এর নামের প্রথম অক্ষরটি বড়-হাতের অক্ষরে লিখেছি এবং class নামে দুটি শব্দ থাকায় দুটি শব্দেরই প্রথম অক্ষর বড়-হাতের অক্ষরে লিখেছি। এই পদ্ধতিকে upper camel case বলে। class নামকরনের সময় একাধিক শব্দ ব্যবহার করলে আমরা এই পদ্ধতি ব্যবহার করবো।


class এ কিভাবে প্রোপার্টি যুক্ত করবেন?

আমরা একটি class এর মধ্যে ব্যবহৃত ভ্যারিয়েবল সমুহকে প্রোপার্টি বলে থাকি। প্রোপার্টিসমুহ অন্য যে কোনো ভ্যারিয়েবলের মতই স্ট্রিং, ইন্টিজার, বুলিয়ান(true অথবা false) টাইপের মান গ্রহণ করতে পারে।

নিম্নের উদাহরনে আমরা Greeting class এ দুটি প্রোপার্টি যুক্ত করবোঃ

উদাহরণ
<?php
class Greeting{
    // public প্রোপার্টি
    public $message;
    public $welcomeMsg = "Welcome Guest";

}
?>

উপরের প্রোগ্রামে লক্ষ্য করলে দেখবেন, class এর মধ্যে প্রোপার্টি নামের পূর্বে public কিওয়ার্ড ব্যবহার করা হয়েছে। এটি ইউজারকে প্রোপার্টি এক্সেস এর ক্ষমতা প্রদান করে। public কিওয়ার্ড সম্মন্ধে আরও জানতে এক্সেস মোডিফায়ার অধ্যায় ভিজিট করুন।

class ভ্যারিয়েবলের নাম অন্যান্য ভ্যারিয়েবলের মতই ছোট-হাতের অক্ষর দিয়ে শুরু হয়। আর নামের মধ্যে যদি একাধিক শব্দ থাকে সেক্ষেত্রে প্রথম শব্দের প্রথম অক্ষরটি ছোট হাতের রেখে বাকী শব্দগুলোর জন্য আপনি camel case পদ্ধতি ব্যবহার করতে পারেন। যেমন- welcomeMsg।

ডিফল্ট ভ্যালুসহ অথবা ডিফল্ট ভ্যালু ছাড়াও প্রোপার্টি ডিফাইন্ড করা যায়। যেমন- উপরের উদাহরনে আমরা দুইটি প্রোপার্টি ডিফাইন করেছি। এদের মধ্যে একটির ডিফল্ট মান নির্ধারন করে দিয়েছি ($welcomeMsg = "Welcome Guest";) এবং অন্যটির ($message) ডিফল্ট মান নাই।


Class এ কিভাবে মেথড যুক্ত করবেন?

আমরা একটি class এর মধ্যে ব্যবহৃত ফাংশন সমুহকে মেথড বলে থাকি। মেথড সমুহ অন্য যে কোনো ফাংশনের মতই কাজ করে।

নিম্নের উদাহরণে আমরা Greeting class এ একটি মেথড যুক্ত করবোঃ

উদাহরণ
<?php
class Greeting{
    // public ফাংশন 
    public function message(){
    echo "Welcome Guest";}

}
?>

উপরের উদাহরনে লক্ষ্য করলে দেখবেন, class এর মধ্যে message() নামে একটি মেথড ডিফাইন করা হয়েছে।

মেথড এর পূর্বে public কিওয়ার্ড ব্যবহার করা হয়েছে। এটি ইউজারকে প্রোপার্টি এক্সেস এর ক্ষমতা প্রদান করে। public কিওয়ার্ড সম্মন্ধে আরও জানতে এক্সেস মোডিফায়ার অধ্যায় ভিজিট করুন।

class ফাংশনের নাম অন্যান্য ফাংশনের মতই ছোট-হাতের অক্ষর দিয়ে শুরু হয়। নামের মধ্যে যদি একাধিক শব্দ থাকে তাহলে প্রথম শব্দের প্রথম অক্ষরটি ছোট হাতের রেখে বাকী শব্দগুলোর জন্য আপনি camel case পদ্ধতি ব্যবহার করতে পারেন। যেমন- welcomeMsg()।


class এর Object তৈরি

আমরা একটি class থেকে নিজস্ব কিছু প্রোপার্টি সম্পন্ন বিভিন্ন Object তৈরি করতে পারি।

Object তৈরির সিনট্যাক্সঃ

new ClassName();

Class এর Object তৈরি করতে আমরা সাধারণত new কিওয়ার্ড ব্যবহার করি। অবজেক্ট তৈরির এই প্রক্রিয়া আমাদের কাছে instantiation হিসাবেও বেশ পরিচিত।

আমরা একই class এর একাধিক Object তৈরি করতে পারিঃ

$variable1 = new ClassName();
$variable2 = new ClassName();

উদাহরণ
<?php
	class Greeting{
    //public ফাংশন
	public function message(){
	echo "Welcome Guest";}

	}

	// একটি অবজেক্ট(object) তৈরি
	$greeting = new Greeting();
?>

পরবর্তী অধ্যায়ে আমরা অবজেক্ট সম্মন্ধে আরও বিস্তারিত জানবো।