PHP 8 এ, কনস্ট্রাক্টর প্রপার্টি প্রমোশন যোগ করা হয়েছে। এটি সাধারণ বস্তু নির্মাণের সময় অনেক বয়লারপ্লেট কোড কমাতে সাহায্য করে। এই বৈশিষ্ট্যটি আমাদেরকে কন্সট্রাক্টর প্যারামিটার তালিকায় ক্লাস ফিল্ড, কনস্ট্রাক্টর ডেফিনিশন এবং ভেরিয়েবল অ্যাসাইনমেন্ট, এক সিনট্যাক্সে একত্রিত করতে দেয়।
আমরা বলতে পারি যে শ্রেণী বৈশিষ্ট্য এবং একটি কনস্ট্রাক্টর নির্দিষ্ট করার পরিবর্তে, আমরা কনস্ট্রাক্টর সম্পত্তি প্রচার ব্যবহার করে সেগুলিকে একত্রিত করতে পারি৷
উদাহরণ 1:PHP 7 কোড
<?php class Account { public float $a; public float $b; public float $c; public function __construct( float $a = 0.0, float $b = 0.0, float $c = 0.0, ) { $this->a = $x; $this->b = $y; $this->c = $z; } } ?>
উদাহরণ 2:PHP 8 কোড
আমরা উপরের পিএইচপি 7 কোডটি পিএইচপি 8-এ নিম্নরূপ পুনরায় লিখতে পারি -
<?php class Account { public function __construct( public float $a = 0.0, public float $b = 0.0, public float $c = 0.0, ) {} } $Account =new Account (10.90,20.0,30.80); print_r($Account->a); print_r($Account->a); print_r($Account->a); ?>
আউটপুট
10.9 20 30.8
উপরের কোডে, আমরা কনস্ট্রাক্টর স্বাক্ষরে সম্পত্তি সংজ্ঞা এবং জনসংখ্যার ইনলাইন একত্রিত করেছি। এই কোডটি পুনরাবৃত্তি মুছে ফেলবে৷
উদাহরণ 3:কনস্ট্রাক্টর সম্পত্তি প্রচারের জন্য পিএইচপি 8 কোড
<?php class Employee { public function __construct( public int $id, public string $name, ) {} } $employee = new Employee(11, 'Alex'); print_r($employee->id); print_r($employee->name); ?>
আউটপুট
11 Alex