با انتشار آپدیت کلی جدید php، قابلیت های زیادی به این زبان اضافه شده است. همه این قابلیت ها در جهت آسان تر کردن برنامه نویسی به زبان php و افزایش کارایی آن است. در این مقاله نگاهی سریع به ویژگی های php 8 می اندازیم.
آپدیت جدید php در تاریخ 26 نوامبر 2020 منتشر شد. این به روزرسانی جدید(php 8) بهینه سازی ها و ویژگی های قدرتمند زیادی را برای زبان به ارمغان می آورد. می خواهیم با هم به سراغ این ویژگی های جدید برویم و با آن ها آشنا شویم. این قابلیت های جدید، به ما این امکان را می دهد که کد بهتری بنویسیم و برنامه های قوی تری بسازیم.
اولین موردی که به آن می پردازیم، PHP JIT(Just-in-time) Compiler است.
بخش PHP JIT به عنوان بخشی تقریباً مستقل از OPcache اجرا می شود. می تواند در زمان کامپایل PHP و در زمان اجرا فعال/غیرفعال شود. هنگامی که فعال است، کد native فایل های PHP در یک منطقه اضافی از حافظه مشترک OPcache ذخیره می شود و پوینتر به نقطه ورود به کد مورد نظر نگه داشته می شود.
به کارگیری آن باعث بهبود در حافظه مصرفی و عملکرد می شود. اما دانستن چگونگی آن، نیاز به دانش زمینه ای از مبحث کامپایلرها دارد. پس از بیان آن در این مقاله خودداری می کنیم. اما اگر با عملکرد کامپایلرها آشنایی دارید، در صورت علاقه می توانید نحوه کار PHP JIT را به صورت جداگانه مطالعه کنید.
ارتقای Constructor Property
در نسخه های قبلی php، شما مجبور بودید ویژگی های یک کلاس را به صورت زیر به همراه constructor آن تعریف کنید:
.png)
اما در php 8 به جای اینکه هر property را در سه جا تکرار کنید، تنها با سینتکس زیر این کار را انجام می دهید:
.png)
این به خوانایی بیشتر کد کمک بزرگی می کند. همچنین نوشتن کد را برای برنامه نویس بسیار راحت تر می کند.
اعتبارسنجی Abstract Trait Methods
تریت(trait) به عنوان "مکانیزمی برای استفاده مجدد کد در زبانهای وراثتی واحد مانند PHP" تعریف شده است. به طور معمول، آن ها برای اعلام methodهایی که می توانند در چندین کلاس استفاده شوند، استفاده می شوند.
یک trait همچنین می تواند شامل methodهای abstract باشد. این متدها به سادگی امضای متد را اعلام می کنند ، اما پیاده سازی متد باید با استفاده از صفت در کلاس انجام شود.
این همچنین به این معنی است که امضای متد ها باید مطابقت داشته باشد. به عبارت دیگر، نوع و تعداد آرگومان های مورد نیاز باید یکسان باشد.
در متداول ترین مورد که در آن پیاده سازی متد توسط کلاس مورد استفاده ارائه شده است، اجرا نمی شود:
.png)
اگر پیاده سازی از کلاس والد انجام شود، اجرا می شود:
.png)
اگر پیاده سازی از یک کلاس فرزند انجام شود، اجرا می شود:
.png)
Incompatible Method Signatures
در PHP ، خطاهای ارثی ناشی از Incompatible Method Signatures بسته به علت ایجاد خطا، یک fatal error یا یک هشدار را نشان می دهند.
در php 8 در هر دو صورت، fatal error دریافت خواهید کرد.
آرایه هایی که با ایندکس منفی شروع می شوند
مثال زیر را در نظر بگیرید:
.png)
در نسخه های قبلی php، نتیجه زیر دریافت می شود:
.png)
اما در php 8 خروجی زیر را خواهیم داشت:
.png)
کامای دنباله دار در لیست پارامترها
در php 8 می توانید از کامای دنباله دار در لیست پارامترهای یک متد یا تابع استفاده کنید.
Named Arguments
در php8 می توانید از نام آرگومان ها برای مقداردهی به توابع استفاده کنید. سینتکس آن هم مانند زبان های دیگر با این قابلیت است. به صورتی که ابتدا نام پارامتر مورد نظر را می نویسیم. سپس یک : می گذاریم و پس از آن مقدار آرگومان را می نویسیم.
اپراتور Nullsafe
با استفاده از <- انجام می شود. کارکرد آن به ان صورت است که تنها در صورتی مقدار پارامتر اول را در پارامتر دوم می ریزد، که مقدار پارامتر اول null نباشد.
مقایسه بهتر string و اعداد
در ورژن های قبلی به دلیل اینکه ابتدا یک string به معادل عددی آن تبدیل می شد، مشکلاتی به وجود می آید. اما این مشکلات در php 8 برطرف شده است.
در زیر نتایج چند مقایسه را در ورژن های قبل از php 8 و بعد از آن ملاحظه می کنید:
.png)
عبارت match
عملکرد این عبارت مانند switch است؛ اما با کمی تفاوت. در switch پارامترها با == مقایسه می شوند. در حالی که در match با === مقایسه می شوند. این از بروز مشکلات ناخواسته جلوگیری می کند. همچنین match دارای سینتکس راحت تری نسبت به switch می باشد.
در زیر نمونه ای از switch را می بینید:
.png)
حالا همین کار را با استفاده از match انجام می دهیم:
.png)
همان طور که می بینید، از دیگر مزیت های match این است که می توانید در آن مقداری را return کنید.
در کنار مواردی که ذکر شد، در php 8 تعدادی تابع جدید نیز نسبت به ورژن های قبلی اضافه شده است.
با این تغییرات، برنامه نویسی php در بعضی از کاربردها آسان تر از ورژن های قبل شده است. همچنین کارایی آن بالاتر رفته و این منجر به استفاده بیشتر برنامه نویسان از php خواهد شد.
favorite_border اولین نفر این مقاله را لایک کنید!
پس از تایید کارشناسان سایت، قابل نمایش خواهد بود.
اگر تصمیم دارید وبسایتی را برای کسب و کارتان ایجاد کنید، باید پاسخی برای این سوال مهم داشته باشید: «طراحی سایت با وردپرس یا برنامه نویسی از صفر؟»
2022-06-28 04:18:04 بیشتر بخوانیدیک طراح سایت همیشه باید به دنبال ظاهری زیبا برای سایت خود نیز باشد. باید بداند که چه افزونه هایی مفید هستند. چه افزونه هایی برای سایت مورد نظرش ضروری
2022-10-26 11:11:56 بیشتر بخوانید
دیدگاه خود را درباره این پست بنویسید