وب‌لاگ

نوشته‌های من

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

فریم‌ورک لاراول نسخه ۶ منتشر شد

طی چند روز گذشته تیم لاراول،‌ نسخه ۶ این فریم‌ورک را منتشر کرد و اکنون در دسترس همگان است.

عملکردهای منسوخ شده در نسخه ۷.۴ زبان PHP

منسوخ شده‌ ها، عوامل بازدارنده ما برای استفاده از بخشی از کد هستند; چونکه دیگه موثر نیستند و یا مشکلات امنیتی بوجود میارند.

زبان برنامه‌نویسی Rust : مفاهیم متداول برنامه نویسی

در این نوشته اولین برنامه رو با زبان Rust رو می‌نویسیم و آناتومی اون رو مورد بررسی قرار میدیم.

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

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