جدیدترین ویژگی های PHP 8.3 را کشف کنید

55
0
ویژگی های PHP 8.3

از نوامبر 2023، PHP 8.3 آخرین نسخه زبان برنامه نویسی توسعه وب خواهد بود. با پیشرفت های مختلف برای برنامه نویسان (مانند انواع اتحادیه، ویژگی های فقط خواندنی، و پیام های خطای بهبود یافته)، استفاده از آنها به این معنی است که باید ارتقا دهید.

در اینجا نگاهی به ویژگی های جدید PHP، با چند مرحله در مورد نحوه پیاده سازی آنها با استفاده از مثال های عملی می اندازیم.

1. انواع اتحادیه و انواع تقاطع

در PHP 8.3، یک ارتقای قابل توجه مستلزم اجرای انواع تقاطع و انواع اتحادیه است. چنین انواعی کدگذارها را قادر می‌سازد تا پارامترها را مشخص کرده و انواع را به صورت ترکیبی از انواع مختلف برگردانند و تطبیق‌پذیری و دوام کد را افزایش دهند.

با استفاده از نماد لوله (|)، انواع اتحادیه تعیین یک پارامتر یا مقدار بازگشتی را با چندین نوع فعال می کند. برای مثال، فرض کنید تابعی دارید که ممکن است یک رشته یا ورودی عدد صحیح را بپذیرد. می توانید پارامتر آن را به صورت زیر تعریف کنید:

function foo(int|string $param) { // ... }

از طرف دیگر، با انواع تقاطع، می توانید یک مقدار یا پارامتر بازگشتی را به صورت ترکیبی از دو یا چند نوع تعریف کنید. بنابراین، مقدار یا پارامتر بازگشتی باید تمام انواع موجود در تقاطع را برآورده کند. بیایید به یک نمونه نگاه کنیم:

function bar(ArrayAccess&Countable $param): int { // ... }

در این مثال، آرگومان باید یک شی باشد که هر دو رابط ArrayAccess و Countable را پیاده‌سازی می‌کند و تابع باید یک عدد صحیح برگرداند.

یک نوع اتحادیه با نماد لوله (|) تعریف می شود و به شما امکان می دهد چندین نوع را که یک پارامتر یا مقدار بازگشتی می تواند داشته باشد، تعیین کنید.

از سوی دیگر، انواع تقاطع، به شما اجازه می‌دهد یک پارامتر یا مقدار بازگشتی را به عنوان تقاطع دو یا چند نوع تعریف کنید. این بدان معنی است که پارامترها یا مقادیر بازگشتی باید همه انواع تقاطع ها را برآورده کنند.

2. ویژگی های فقط خواندنی

افزودن ویژگی های فقط خواندنی در PHP 8.3 یکی دیگر از جنبه های مفید است. شما می‌توانید با استفاده از این ویژگی، ویژگی‌ها را فقط خواندنی اعلام کنید، که از تغییرات بیشتر در مقدار آنها جلوگیری می‌کند و فقط یک بار اجازه اولیه‌سازی را می‌دهد.

شما می توانید از این قابلیت برای افزایش امنیت و قابلیت اطمینان کد خود با جلوگیری از تغییر ناخواسته داده های مهم استفاده کنید.

این مثال PHP 8.3 نحوه تعریف یک ویژگی فقط خواندنی را نشان می دهد.

Class MyClass
{
Public read_only string $name;
Public function__construct(string $title)
{$this->title = $title;
  }
}

در مثالی که در بالا ذکر شد، تابع Object() { [ کد بومی ] } ویژگی $name را فقط یک بار مقداردهی اولیه می کند. فقط می توان آن را به عنوان یک تابع فقط خواندنی مشخص کرد.

3. پیام های خطای پیشرفته

هنگامی که یک خطای مهلک در یک اسکریپت PHP رخ می دهد، ویژگی پیام های خطای پیشرفته در PHP 8.3 پیام های خطای عمیق و مفیدتری را ارائه می دهد. توسعه دهندگان می توانند به سرعت مشکلات کد را با این ویژگی شناسایی و برطرف کنند.

هنگام دسترسی به یک فهرست آرایه تعریف نشده، پیام‌های خطای پیشرفته در عمل هستند. در نسخه های قبلی PHP، با یک پیغام خطایی مانند زیر مواجه می شوید:

Notice: Undefined offset: 4 in /path/to/file.php on line 3

این پیغام خطا در مورد اینکه مشکل از کجا آمده است چیز زیادی نمی گوید. با این حال، با پیام‌های خطای پیشرفته PHP 8.3، پیام خطای عمیق‌تری را دریافت خواهید کرد:

Fatal error: Uncaught Error: Cannot use string offset as an array in /path/to/file.php:3 Stack trace: #0 {main} thrown in /path/to/file.php on line 3 Notice: Trying to access array offset on the value of type null in /path/to/file.php on line 3

این پیغام خطا یک stack trace را برای کمک به شما در تعیین منشأ مشکل ارائه می‌کند و به شما اطلاع می‌دهد که سعی می‌کنید از یک رشته افست به عنوان یک آرایه (یکی از بسیاری از توابع دستکاری متن مفید در PHP) استفاده کنید. علاوه بر این، به شما اطلاع می دهد که در حال تلاش برای دسترسی به یک مقدار تهی از یک آرایه افست هستید.

برای PHP 8.3 آماده شوید

حرکت به PHP 8.3 برای طراحان با توجه به جدیدترین نکات برجسته و پیشرفت آن بسیار مهم است. معرفی انواع اتحاد و تقاطع در PHP 8.3 کار برنامه نویسان را با انواع داده های پیچیده آسان تر می کند.

با جلوگیری از تغییرات ناخواسته در داده های مهم، ویژگی های فقط خواندنی نیز قابلیت اطمینان کد را افزایش می دهند. به طور کلی، ارتقاء به PHP 8.3 به توسعه دهندگان امکان دسترسی به ابزارهای قدرتمندتر و سازگارتر برای ایجاد برنامه های کاربردی وب با کارایی بالا با چارچوب هایی مانند لاراول را می دهد.

امتیاز این مطلب
سهیل دهقانی
نوشته شده توسط

سهیل دهقانی

علاقه مند به فناوری و تکنولوژی های روز دنیا کارشناس سئو و تولید محتوا

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

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

گوگل فارکس آموزش تخصصی آمارکتس