ویژگی های PHP 8

PHP 8 یکی از بزرگترین بروز رسانی های زبان PHP می باشد. این بروز رسانی شامل ویژگی های جدید و بهینه از جمله named arguments, union types, attributes, constructor property promotion, match expression, nullsafe operator, JIT و بهینه سازی type system, error handling و consistency می باشد.

 

آرگومان های نام گذاری شده (named arguments)

در این قابلیت هنگام ارسال مقادیر به توابع می توانید فقط آرگومان های لازم را ارسال کنید و از ارسال آرگومان های دلخواه (optional) صرف نظر کنید.

 

همچنین می توانید ترتیب ارسال آرگومان ها را رعایت نکنید.

 

جلوگیری از تکرار کدها در تعریف و مقداردهی property ها (Constructor property promotion)

 

Union types ها:

Union types ها مجموعه ای از چندین نوع داده ای را به جای یک نوع قبول می کنند.

 

Match expression:

این قابلیت شبیه switch می باشد اما بهینه تر و دارای ویژگی های زیر می باشد:

- نتیجه match می تواند در متغیر ذخیره یا برگشت داده شود.

- شاخه های match می توانند فقط یک خط باشند و به break نیاز ندارند.

- از  strict comparison (===) استفاده می کند.

 

Nullsafe operator:

به جای چک کردن null در condition ها می توانید زنجیره ای از مقایسه ها را با عملگر جدیدی به نام nullsafe انجام دهید. به محض اینکه یکی از معادلات این زنجیره fail شود اجرای زنجیره متوقف شده و نتیجه کل عبارت null خواهد بود.

 

Saner string to number comparisons

هنگام مقایسه با یک رشته عددی، PHP 8 یک مقایسه عددی انجام می دهد. در غیر این صورت عدد را به string تبدیل کرده و مقایسه رشته ای انجام می دهد.

Consistent type errors for internal functions

بیشتر توابع داخلی هنگامی که اعتبارسنجی یک پارامتر مورد قبول واقع نشود یک Error exception نمایش خواهند داد.

 

Attribute ها

شکلی از metadata به صورت ساختار یافته برای تعریف کلاس ها، property ها، توابع، پارامترها و مقادیرثابت. مفهومی مشابه Annotation ها در جاوا، Attribute ها در #C++ , C  و Decorator در پایتون و جاوا اسکریپت