وب‌لاگ

نوشته‌های من

توابع کوتاه در نسخه ۷.۴ زبان PHP

تیم PHP به تازگی پیشنهاد افزودن توابع کوتاه (Arrow functions) را که توسط درخواست نظر (RFC) نیکیتا پوپوف، لوی موریسون و باب وینند ارائه شده بود، را تایید کرد. نقل قول زیر مربوط به قسمت مقدمه این درخواست نظر می‌باشد.

" توابع ناشناس (Anonymous functions) در PHP می‌توانند بسیار پیچیده شوند، حتی در حالتی که بسیار ساده هستند و تنها یک عمل ساده را انجام می‌دهند. علاوه بر این وارد کردن متغیر ها درون اسکوپ کلوژر باید به صورت دستی انجام شود. پس حتی با استفاده از کلوژرهای ساده، خوانایی و درک‌کردن کدهای ما سخت تر می‌شود. این RFC یک روش مختصر برای این الگو پیشنهاد می کند. "

این RFC سینتکس زیر را برای توابع کوتاه پیشنهاد کرده است:

سینتکس پیشنهادی

این RFC همچنین مثالی برای استفاده از این توابع ارائه داده است:

مثال پیشنهادی


در زیر چگونگی استفاده از این توابع را مرور می‌کنیم:

  • این توابع در نسخه ۷.۴ زبان PHP قابل استفاده هستند
  • این توابع با کلیدواژه fn شروع می‌شوند
  • این توابع تنها می‌توانند یک عبارت داشته باشند که گزینه return می‌باشد
  • استفاده از کلیدواژه return در بدنه این توابع مجاز نیست
  • آرگومان‌ها و مقادیر برگشتی می‌توانند از Type Hinting استفاده کنند
  • استفاده از عملگر گسترش (Spread Operator) نیز مجاز است

به طور خلاصه، کلوژرهای کوتاه همان عملکرد هایی که شما از کلوژرهای معمولی انتظار دارید را ارائه می‌دهند ; به استثنای این که تنها می‌توانند یک عبارت داشته باشند.

دریافت مقادیر خارج از اسکوپ

یکی دیگر از تفاوت‌های مهم بین کلوژرهای کوتاه و معمولی این است که در کلوژرهای کوتاه برای دسترسی به مقادیر خارج از اسکوپ، نیازی به استفاده از کلیدواژه use نیست.

دریافت مقادیر خارج از اسکوپ

توجه به این نکته نیز مهم است که شما مجاز به تغییر متغیر در دامنه (اسکوپ) بیرونی نیستید. در مثال بالا می‌بینید که متغیر modifier$ در داخل کلوژر کوتاه تغییر میکند، اما این کار هیچ تاثیری روی متغیر modifier$ که خارج از اسکوپ قرار دارد، نخواهد داشت.

شاید از این نوشته‌ها هم خوشتان بیاید

زبان برنامه‌نویسی Rust : مقدمه

زبان Rust زبانی مولتی پارادایم هست، که نسخه اولیش در سال ۲۰۱۰ توسط Graydon Hoare ارائه شد

اشتراک داده ها بین لاراول و جاوااسکریپت

اشتراک داده ها بین بک‌ اند و فرانت اند جز مواردی هست که در اکثر اپلیکیشن های تحت وب مورد نیازه...

ویو دِو تولز (Vue Devtools) نسخه ۵.۰ منتشر شد

گیوم چاو یکی از اعضای اصلی تیم توسعه فریم‌ورک Vue Js، اخیرا از انتشار نسخه ۵.۰ Vue Dev Tools برای گوگل کروم و فایرفاکس خبر داد.

با من تماس بگیرید

از طریق این فرم اهداف و نیازهای پروژه خود را با من در میان بگذارید.