چه چیزی در PHP 8 جدید است؟

لیست ویژگی ها و تغییرات جدید در PHP 8 گسترده است. اما مهمترین آنها استفاده از یک کامپایلر Just In Time (JIT) است. این روش کد PHP را به کد ماشین تغییر می دهد تا سرور بتواند آن را درک کند. همانطور که از نام آن پیداست، JIT برای سرعت بخشیدن به عملکرد طراحی شده است. Zeev Surasky، یکی از نویسندگان پیشنهاد JIT، یک ویدیوی کوتاه (https://youtu.be/dWH65pmnsrI) ایجاد کرده است تا پیشرفت چشمگیری را که JIT قادر به انجام آن است نشان دهد. با این حال، چنین بهبودهایی در سرعت فقط بر محاسبات فشرده پردازنده تأثیر می گذارد – حداقل در حال حاضر. وردپرس در PHP 8 سریعتر از PHP 7 اجرا نمی شود، جایی که سرعت واقعی نسبت به نسخه های قبلی افزایش یافته است فقط در محاسبات فشرده است.
بسیاری از ویژگی های جدید در PHP 8 به گونه ای طراحی شده اند که کد را مختصرتر و کارآمدتر کند. برای مثال، آرگومان‌های نام‌گذاری‌شده نیاز به تکرار مقادیر پیش‌فرض چندین آرگومان را برای یک تابع از بین می‌برند، اگر می‌خواهید تنها یکی از آنها را تغییر دهید. ارتقای پراپرتی های سازنده، اعلان خواص در تعریف کلاس را بسیار ساده می کند و معمولاً تعداد خطوط را یک سوم کاهش می دهد. عملگر جدید nullsafe به طور مشابه مقدار کد مورد نیاز برای فراخوانی یک متد یا واکشی ویژگی در نتیجه یک عبارت را تنها در صورتی که null نباشد کاهش می‌دهد. جزئیات این ویژگی ها و سایر ویژگی های جدید در فصل های 3 و 4 پوشش داده شده است.
یک نکته مهم در انتقال کدهای موجود به نسخه جدید PHP این است که آیا تغییرات ناسازگار برنامه شما را خراب می کند یا خیر. اگر بهترین روش های توصیه شده را دنبال کرده اید، بعید است که مشکلی داشته باشید. با این حال، تغییرات مهمی وجود دارد که باید از آنها آگاه باشید:

. اپراتور کنترل خطا (@) دیگر خطاهای مهلک را خاموش نمی کند
. مقایسه غیر دقیق بین اعداد و رشته های غیر عددی با استفاده از دو علامت مساوی (==) اکنون عدد را به رشته تبدیل کرده و رشته ها را با هم مقایسه کنید. این بدان معناست که برخی از مقایسه‌هایی که قبلاً برابر با درست بود، اکنون نادرست هستند..

متدهایی با همان نام کلاس دیگر به عنوان سازنده تفسیر نمی شوند.
به جای آن باید از __construct() استفاده کنید.

دیگر نمی توانید ثابت های حساس به حروف بزرگ را تعریف کنید.

match یک کلمه کلیدی رزرو شده است.

#[ دیگر به عنوان شروع یک نظر در نظر گرفته نمی شود زیرا این نحو برای ویژگی جدیدی به نام attributes استفاده می شود. این فقط بر یک براکت مربع باز بعد از # تأثیر می گذارد.

توجه داشته باشید: برای لیست کامل موارد منسوخ شده نسبت به نسخ قبلی در PHP 8 به www.php.net/manual/en/migration80.incompatible.php مراجعه کنید.

Facebook
Twitter
LinkedIn
Telegram
WhatsApp

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

آخرین مقالات و نوشته ها