পরিচয়
অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং পরিভাষায়, কনস্ট্রাক্টর হল একটি ক্লাসের ভিতরে সংজ্ঞায়িত একটি পদ্ধতি যা অবজেক্ট তৈরির সময় স্বয়ংক্রিয়ভাবে বলা হয়। একটি কনস্ট্রাক্টর পদ্ধতির উদ্দেশ্য হল অবজেক্ট শুরু করা। PHP-তে, বিশেষ নামের একটি পদ্ধতি __construct কনস্ট্রাক্টর হিসেবে কাজ করে।
সিনট্যাক্স
__construct ([ mixed $args = "" [, $... ]] ) : void
কনস্ট্রাক্টর উদাহরণ
এই উদাহরণটি দেখায় যে কনস্ট্রাক্টর স্বয়ংক্রিয়ভাবে কার্যকর হয় যখন বস্তু ঘোষণা করা হয়
উদাহরণ
<?php
class myclass{
function __construct(){
echo "object initialized";
}
}
$obj=new myclass();
?> আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
object initialized
আর্গুমেন্ট সহ কনস্ট্রাক্টর
আর্গুমেন্ট সহ কনস্ট্রাক্টর দ্বারা ক্লাসের বৈশিষ্ট্যগুলি শুরু করা হয়
উদাহরণ
<?php
class rectangle{
var $height;
var $width;
function __construct($arg1, $arg2){
$this->height=$arg1;
$this->width=$arg2;
}
function show(){
echo "Height=$this->height Width=$this->width";
}
}
$obj=new rectangle(10,20);
$obj->show();
?> আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
Height=10 Width=20
উত্তরাধিকারে কনস্ট্রাক্টর
যদি প্যারেন্ট ক্লাসে কনস্ট্রাক্টর সংজ্ঞায়িত করা থাকে, তাহলে এটিকে parent::__construct দ্বারা চাইল্ড ক্লাসের কনস্ট্রাক্টরের মধ্যে বলা যেতে পারে . যাইহোক, যদি চাইল্ড ক্লাস একটি কনস্ট্রাক্টরকে সংজ্ঞায়িত না করে, তবে এটি বেস ক্লাস থেকে একই রকম উত্তরাধিকারসূত্রে প্রাপ্ত হয়।
উদাহরণ
<?php
class a{
function __construct(){
echo "this is a constructor of base class\n";
}
}
class b extends a{
function __construct(){
parent::__construct();
echo "this a constructor class b\n";
}
}
class c extends a {
//
}
$a=new a();
$b=new b();
$c=new c();
?> প্রসারিত করে আউটপুট
এটি নিম্নলিখিত ফলাফল তৈরি করবে। −
this is a constructor of base class this is a constructor of base class this a constructor class b this is a constructor of base class
ধ্বংসকারী
ডেস্ট্রাক্টর হল একটি পদ্ধতি যা স্বয়ংক্রিয়ভাবে আবর্জনা সংগ্রহকারীর পাখনা দেখে যে একটি নির্দিষ্ট বস্তুর আর কোন রেফারেন্স নেই। পিএইচপি-তে, ডেস্ট্রাক্টর পদ্ধতির নাম __destruct . শাটডাউন সিকোয়েন্সের সময়ও বস্তুগুলো ধ্বংস হয়ে যাবে। ডেস্ট্রাক্টর পদ্ধতি কোনো আর্গুমেন্ট নেয় না, এটি কোনো ডেটা টাইপও দেয় না
উদাহরণ
<?php
class myclass{
function __construct(){
echo "object is initialized\n";
}
function __destruct(){
echo "object is destroyed\n";
}
}
$obj=new myclass();
?> আউটপুট
এটি নিম্নলিখিত ফলাফল দেখাবে
object is initialized object is destroyed