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

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

হোম-HOME ইনস্টল-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 স্ট্যাটিক মেথোড এবং প্রোপার্টি

পিএইচপি - রেফারেন্স

Array ফাংশন Calendar ফাংশন date/time ফাংশন Directory ফাংশন Error ফাংশন Filesystem ফাংশন Filter ফাংশন FTP ফাংশন HTTP ফাংশন libxml ফাংশন Mail ফাংশন Math ফাংশন Misc. ফাংশন MySQLi ফাংশন SimpleXML ফাংশন String ফাংশন XML Parser ফাংশন Zip File ফাংশন টাইমজোন Timezones
 

ম্যাজিক মেথড এবং কনস্ট্যান্ট

অবজেক্ট অরিয়েন্টেড পিএইচপিতে ম্যাজিক মেথড(method) এবং কনস্ট্যান্ট(constant) ব্যবহার করে খুব সামান্য কোড লিখেই অনেক বেশী কার্য সম্পাদন করা সম্ভব এবং এটি কোডের কার্যক্ষমতা এবং স্বচ্ছতার মাত্রাও অনেক বাড়িয়ে দেয়।

ম্যাজিক মেথড এর ব্যবহার সম্পর্কে অনেক বিতর্ক রয়েছে, তাই আমাদের এই টিউটোরিয়ালে আমরা অধিক সম্মত অংশগুলো নিয়ে আলোচনা করবো।


__construct() ম্যাজিক মেথড

ম্যাজিক মেথডগুলো সবসময় দুটি আন্ডারস্কোর দিয়ে শুরু হয়। এমনকি __construct() ম্যাজিক মেথডের ক্ষেত্রেও এই একই নিয়ম প্রযোজ্য।

আমরা কোন ক্লাসের অবজেক্ট তৈরির সময় __construct() ম্যাজিক মেথড ব্যবহার করে স্বয়ংক্রিয়ভাবে কিছু কার্য সম্পাদন করতে পারি। আমারা সাধারনত ক্লাসের প্রোপার্টির মান সেট করার জন্য __construct() ম্যাজিক মেথডটি ব্যবহার করি।

নিম্নের উদাহরণে আমরা __construct() মেথড ব্যবহার করে ক্লাসের প্রোপার্টির মান সেট করবোঃ

উদাহরণ
<?php
 class Greeting{

   private $name;
   public function __construct($name){
      $this->name = $name;
   }
 }

?>

কন্সট্রাকটর মেথড ব্যবহার করলে অবজেক্ট তৈরির সময় ক্লাস এর মধ্য দিয়ে কমপক্ষে একটি বা প্রয়োজন অনুযায়ী আর্গুমেন্ট পাস করাতে হবে। কিন্তু আমরা যদি কন্সট্রাকটর মেথডকে কোনো গুরুত্ব না দিয়েই নতুন অবজেক্ট তৈরির চেষ্টা করি তাহলে একটি error এর সম্মূখীন হতে হবেঃ

$greeting = new Greeting();

ফলাফল
Warning: Missing argument 1 for Greeting::__construct()

এই ধরনের error সমুহকে এড়িয়ে যাওয়ার জন্য আমরা কন্সট্রাকটর মেথডে একটি মান নির্ধারন করে দিতে পারি। অবজেক্ট তৈরি করার সময় কন্সট্রাকটর মেথডে মান সেট করার জন্য আমরা নিম্নের ন্যায় প্রথম বন্ধনির মধ্যে মান ঠিক করে দিবঃ

$greeting = new Greeting("Tamjid");

এখন আমরা একটি মেথড তৈরি করবো যার মাধ্যমে আমরা $name প্রোপার্টির ভ্যালু আউটপুট নিবঃ

উদাহরণ
<?php
	class Greeting{

   private $name;
   public function __construct($name){
      $this->name = $name;
    	  }
   public function getHello(){
   	echo "Hello ". $this->name . ".";
   }
 }

 $greeting = new Greeting();
 $greeting->getHello();

?>

ফলাফল
Hello Tamjid.

কোনো ঝুঁকি ছাড়াই কিভাবে কন্সট্রাকটর মেথড লিখবেন?

উপরের উদাহরণে আমরা দেখেছি কন্সট্রাকটর মেথড ব্যবহার করে ক্লাসের অবজেক্ট তৈরি করার সময় ক্লাসের মধ্য দিয়ে আর্গুমেন্ট অতিক্রম করাতে হয়, অন্যথায় একটি error এর সম্মুখীন হতে হবে।

এই error টিকে এড়ানোর জন্য আমরা প্রোপার্টিতে একটি ডিফল্ট মান নির্ধারন করে দিব। প্রোপার্টির জন্য ডিফল্ট মানগুলো ফাঁকা স্ট্রিং অথবা স্ট্রিং অথবা শূন্য অথবা নাল ভ্যালু হতে পারে।

আমাদের প্রোগ্রামে আমরা ডিফল্ট ভ্যালু হিসাবে "Guest" ব্যবহার করবো। নিম্নের উদাহরণটি লক্ষ্য করুনঃ

উদাহরণ
<?php
	class Greeting{

   private $name = "Guest";
   public function __construct($name = null){
   	if($name){
      $this->name = $name;
    	  }
   	}
   public function getHello(){
   	echo "Hello ". $this->name . ".";
   }
 }

 $greeting = new Greeting();
 $greeting->getHello();

?>

আমরা $name প্রোপার্টিতে কোন মান পাস করানো ছাড়া একটি অবজেক্ট তৈরি করা সত্ত্বেও কোনো error দেখাবে না। কারন কন্সট্রাকটর মেথডের ডিফল্ট মান "NULL"।

ফলাফল
Hello Guest.

চলুন দেখি উপরের উদাহরণে একটি মান পাস করলে কি ঘটেঃ

উদাহরণ
<?php
	class Greeting{

   private $name = "Guest";
   public function __construct($name = null){
   	if($name){
      $this->name = $name;
    	  }
   	}
   public function getHello(){
   	echo "Hello ". $this->name . ".";
   }
 }

 $greeting = new Greeting("Tamjid");
 $greeting->getHello();

?>

ফলাফল
Hello Tamjid.

এক্ষেত্রে আমাদের দেওয়া মানটি আউটপুট হিসাবে দেখিয়েছে। সুতরাং উপরোক্ত পদ্ধতি অবলম্বন করে আমরা ম্যাজিক কন্সট্রাকটর ব্যবহার করতে পারি।


ম্যাজিক কনস্ট্যান্ট(constant)

ম্যাজিক মেথড ছাড়াও পিএইচপিতে আরো কিছু মজার কনস্ট্যান্ট রয়েছে। যেগুলো ব্যবহার করে আমরা নির্দিষ্ট কার্য সম্পাদন করতে পারি।

উদাহরণস্বরূপঃ আমরা একটি কনস্ট্যান্ট __CLASS__ ব্যবহার করতে পারি। পিএইচপিতে কনস্ট্যান্ট প্রকাশ এর জন্য প্রথমে দুইটি আন্ডারস্কোর, এরপরে কন্সট্যান্ট এর সবগুলো অক্ষর বড়-হাতের তারপরে আবার দুইটি আন্ডারস্কোর লিখতে হয়। __CLASS__ কনস্ট্যান্ট যে ক্লাসে ব্যবহার করা হয় এটি ঐ ক্লাসের নাম রিটার্ন করে।

উদাহরণ
<?php
	class Greeting{

   private $name = "Guest";
   public function __construct($name = null){
   	if($name){
      $this->name = $name;
    	  }
   	}
   public function getHello(){
   	echo "Class name: ".__CLASS__.".<br> Hello ". $this->name . ".";
   }
 }

 $greeting = new Greeting("Tamjid");
 $greeting->getHello();

?>

ফলাফল
Class name: Greeting.
Hello Tamjid.

এছাড়া আরো কিছু ম্যাজিক কনস্ট্যান্ট রয়েছে যা আমরা ব্যবহার করতে পারিঃ