পরিচয়
অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং পরিভাষায়, কনস্ট্রাক্টর হল একটি ক্লাসের ভিতরে সংজ্ঞায়িত একটি পদ্ধতি যা অবজেক্ট তৈরির সময় স্বয়ংক্রিয়ভাবে বলা হয়। একটি কনস্ট্রাক্টর পদ্ধতির উদ্দেশ্য হল অবজেক্ট শুরু করা। 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