PHP Object Oriented Programming পর্ব-৪: Constructor Method and Destructor Methods

PHP তে Constructor Method কি?

PHP constructor Method

Class থেকে নতুন কোনো object তৈরী হওয়ার সময় যে মেথড স্বয়ংক্রিয় ভাবে এবং সবার আগে execute হয়, PHP তে তাকে constructor Method বলে। PHP তে Constructor Method একটি PHP Language কর্তৃক Pre-defined Public Method অর্থাৎ PHP language কর্তৃক পূর্ব নির্ধারিত Public Method , যা public function এর পর একসাথে দুইবার underscore (__) দেওয়ার পর construct কথাটি লিখতে হয় অর্থাৎ public function __construct() নাম দিয়ে লিখতে হয়। নিচের উদাহরণ দেখুন :

<?php
class oop{
 public function __construct(){
     echo "Welcome to PHP World!";
 }
 public function sayHello(){
     echo "Hello World";
 }
 

}
$obj=new oop; /* Now Automatically Execute __construct Method
                  And Will show "Welcome to PHP World " First.*/

echo "<br>";

$obj->sayHello(); // Result: Hello World

?>

Result:

Welcome to PHP World
Hello World

Zend Certified PHP Engineering (ZCPE) Course

Constructor Method এর Parameter এ কিভাবে Argument পাঠাবো?

যদি কোনো class এর Constructor Method এ Parameter দেওয়া থাকে, তাহলে সেই Constructor Method এ Argument পাঠাতে হলে class object এর সাথে parenthesis “( )” দিয়ে আর্গুমেনট পাঠাতে হবে। নিচের উদাহরণ দেখুন :

class Car {
  private $model;
  
  //__construct
  public function __construct ($model)
  {
    $this -> model = $model;
  }
   
  public function getCarModel()
  {
    return ' The car model is: ' . $this -> model;
  }
}
  
//We pass the value of the variable once we create the object
$car1 = new Car("Mercedes"); // Passing Argument to Constructor Parameter
  
echo $car1 -> getCarModel();

Result

The car model is: Mercedes.

PHP তে Destructor Method কি?

PHP Destructor Mehtod

Object এর কাজ শেষ হওয়ার সময় class এর মধ্যে যে মেথড স্বয়ংক্রিয় ভাবে execute হয় বা সবার শেষে execute হয়, PHP তে তাকে Destructor Method বলে। PHP তে Destructor Method একটি PHP Language কর্তৃক Pre-defined Public Method অর্থাৎ PHP language কর্তৃক পূর্ব নির্ধারিত Public Method , যা public function এর পর একসাথে দুইবার underscore (__) দেওয়ার পর destruct কথাটি লিখতে হয় অর্থাৎ public function __destruct() নাম দিয়ে লিখতে হয়। নিচের উদাহরণ দেখুন :

<?php
class oop{
 public function __construct(){
     echo "Welcome to PHP World!";
 }
 public function sayHello(){
     echo "Hello World";
 }
 
 public function __destruct(){
     echo "<br>I'm about to disappear - bye bye!";
 }

}
$obj=new oop;

echo "<br>";

$obj->sayHello();

?>

Result:

Welcome to PHP World!
Hello World
I'm about to disappear - bye bye!

Zend Certified PHP Engineering (ZCPE) Course

PHP তে Destructor Method কোনো argument receive করতে পারে ?

না পারেনা এবং সেটার দরকার ও নাই। তবে অন্য যেকোনো method দিয়ে Argument Receive করে যেকোনো property তে রেখে সেই property কে constructor Method দিয়ে রিটার্ন করতে পারবেন। নিচের উদাহরণ টি দেখুন :

<?php
class oop{
private $name;
 public function __construct($val){
     return $this->name=$val;
 }
 public function sayHello(){
     echo "Hello World";
 }
 
 public function __destruct(){
     echo "<br>Bye bye $this->name!";
 }

}
$obj=new oop("Imran");

echo "<br>";

$obj->sayHello();

?>

Result

Hello World
Bye Bye Imran!

PHP তে Destructor Method কেন ব্যবহার করবো?

কোনো কিছু fininshing বা শেষ করতে চাইলে destructor Method ব্যবহার করা হয়, যেমন : file closing, Database Connection closing এবং Session Destroy এর মতো কাজগুলো Destructor Method দিয়ে করা হয়।

আমি মাসুদ আলম, বাংলাদেশের ৩৬ তম Zend Certified Engineer । ২০০৯ সালে কম্পিউটার সাইন্স থেকে বেচেলর ডিগ্রী অর্জন করি। দীর্ঘ ১৫ বছর আমি Winux Soft, SSL Wireless, IBCS-PRIMAX, Max Group, Canadian International Development Agency (CIDA), Care Bangladesh, World Vision, Hellen Keller, Amarbebsha Ltd সহ বিভিন্ন দেশি বিদেশী কোম্পানিতে ডেটা সাইন্স, মেশিন লার্নিং, বিগ ডেটা, ওয়েব ডেভেলপমেন্ট এবং সফটওয়্যার ডেভেলপমেন্ট এর উপর বিভিন্ন লিডিং পজিশন এ চাকরি এবং প্রজেক্ট লিড করি। এছাড়াও বাংলাদেশের ১৮৫ জন জেন্ড সার্টিফাইড ইঞ্জিনিয়ার এর মধ্যে ১২০ এরও অধিক ছাত্র আমার হাতে জেন্ড সার্টিফাইড ইঞ্জিনিয়ার হয়েছেন। বর্তমানে w3programmers ট্রেনিং ইনস্টিটিউট এ PHP এর উপর Professional এবং Advance Zend Certified PHP -8.2 Engineering, Laravel Mastering Course with ReactJS, Python Beginning To Advance with Blockchain, Machine Learning and Data Science, Professional WordPress Plugin Development Beginning to Advance কোর্স করাই। আর অবসর সময়ে w3programmers.com এ ওয়েব টেকনোলজি নিয়ে লেখালেখি করি।

Leave a Reply