named arguments در PHP8


امروز داشتم گذری امکانات جدید Php8 رو بررسی میکردم به این نتیجه رسیدم کدنویسی با php8 خیلی چقدر جذاب و عالیه!

یکی از بهترین و جذاب ترین تغییرات جدیدی که بوجود اومده، سینتکسی به نام named arguments هست

حتما برای پیش اومده که با توابعی برخوردیم که تعداد زیادی آرگومان ورودی دارند . حالا وقتی میخوایم ازین توابع استفاده کنیم ارسال پارامتر برای این توابع خوانایی کد رو کم میکنه و با چشم مشخص نمیشه مثلا مقدار 1 که برای آرگومان چهارم ارسال کردیم چیه و چه کاری باید انجام بده! من قبلا اینطور مواقع همیشه به جای اینکه توابعم چندین آرگومان بگیرن، یک آرگومان از نوع یک شی خاص ارسال میکردم و از طریق شی گرایی ، داخل تابع مورد نظرم با متد های آبجکت ارسالی دسترسی پیدا میکردم

اما خب این روش هم خیلی جالب نبود چون همیشه باید از کلاس مورد نظرم یه آبجکت new میکردم و آبجکت رو میفرستادم برای تابع!




php8 الان مشکل رو برای هممون رفع کرده!

کد زیر رو ببینید :

class CustomerData
{
    public function __construct(
        public string $name,
        public string $email,
        public int $age,
    ) {}
}

$data = new CustomerData(
    name: 'Behzad Azizan',
    email: 'behzad.azizan1991@gmail.com',
    age: 29,
);

همین طور که میبینید به جای اینکه من مجبور باشم آرگومان های سازنده کلاس رو به صورت پشت سر هم و متواری ارسال کنم، با استفاده از سینتکس

name: VALUE
پارامتر هارو ارسال کنم.

عالیه به نظرم !