PHP 8-এ Constructor Property Promotion যোগ করা হয়েছে। এটি সাধারণ অবজেক্ট কনস্ট্রাক্ট করার সময় অনেক বয়লারপ্লেট কোড কমাতে সাহায্য করে। এই ফিচার আমাদের ক্লাস ফিল্ড, কনস্ট্রাক্টর ডেফিনিশন, এবং ভেরিয়েবল অ্যাসাইনমেন্ট সব একসাথে কনস্ট্রাক্টর প্যারামিটার লিস্টে একসাথে জোড়া দিতে দেয়।
আমরা বলতে পারি যে ক্লাস প্রোপার্টি এবং কনস্ট্রাক্টর আলাদা নির্দিষ্ট করার বদলে, আমরা কনস্ট্রাক্টর প্রোপার্টি প্রোমোশন ব্যবহার করে সেগুলো একসাথে জোড়া দিতে পারি।
উদাহরণ ১: 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; } } ?>উদাহরণ ২: PHP 8 কোড
আমরা উপরের PHP 7 কোডটি PHP 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
উপরের কোডে, আমরা প্রোপার্টি ডেফিনিশন এবং পপুলেশন কনস্ট্রাক্টর সিগনেচারে ইনলাইন জোড়া দিয়েছি। এই কোড রিপিটিশন দূর করবে।
উদাহরণ ৩: Constructor Property Promotion-এ PHP 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