تابع در PHP – تعریف، نحوه فراخوانی و ترفندها به زبان ساده
«تابع» (Function) یکی از مهمترین مفاهیم موجود در دنیای برنامه نویسی است. استفاده از توابع موجب کد نویسی کمتر و خوانایی بیشتر برنامه میشود و به برنامهنویسان امکان نوشتن کدهای استاندارد با قابلیت استفاده مجدد را میدهد. این مفهوم و نحوه استفاده و تعریف آن در اکثر زبانهای برنامه نویسی مشترک است. تابع در زبان PHP نیز عملکردی مشابه با سایر زبانهای برنامه نویسی دارد و به برنامهنویس امکان استفاده چند باره از یک قطعه کد را میدهد. بر همین اساس در این مطلب از مجله فرادرس به بررسی موارد مهمی از جمله تعریف و فراخوانی تابع در PHP، مزایای استفاده از تابع و انواع آن پرداختهایم.
علاوه بر این، با مطالعه این مطلب نکات بسیار مهمی در خصوص تعریف تابع در PHP همچون «آرگومان» (Argument)، پارامتر، مقادیر بازگشتی، پارامترهای پیشفرض، دامنه تابع و سایر موارد خواهید آموخت. همچنین، سعی شده است تا با ارائه مثالها و قطعه کدهای مرتبط درک مباحث گفته شده آسانتر شود.
مفهوم تابع چیست؟
تابع در برنامه نویسی به بلوکی از کدهای مستقل و قابل استفاده مجدد اشاره دارد که با توجه به نیاز برنامهنویس کار مشخصی را انجام میدهند. اکثر زبانهای برنامه نویسی از مفهوم تابع پشتیبانی میکنند، زیرا استفاده از تابع در برنامه نویسی ضمن کوتاهتر کردن کدهای نوشته شده موجب خوانایی بهتر و رفع اشکال آسانتر از کد نیز میشود. علاوه بر این، با توجه به امکان فراخوانی چند باره توابع میتوان گفت که توابع به بهبود قابلیت استفاده مجدد کد نیز کمک میکنند.
مهمترین اجزای ساختار تابع کدامند؟
توابع در دیگر شاخههای علمی همچون فیزیک و ریاضیات نیز کاربرد دارند و تقریباً ساختار اصلی تعریف و استفاده از تابع در حوزههای مختلف یکسان است. به طور کلی توابع معمولاً ورودی مشخصی را دریافت میکنند و بعد از انجام عملیات تعیین شده بر روی اطلاعات ورودی، خروجی مورد نظر را بر میگردانند.
عملیات انجام شده بر روی دادههای ورودی به تابع رابطه بین ورودی و خروجی را مشخص میکند. بر همین اساس، ۳ بخش اصلی تشکیل دهنده هر تابعی عبارتند از:
- ورودی
- رابطه بین ورودی و خروجی
- خروجی
مفهوم تابع در PHP
زبان برنامه نویسی PHP نیز همانند سایر زبانهای برنامه نویسی معروف از مفهوم تابع پشتیبانی میکند. در واقع، استفاده از کدهای یکسان در بخشهای مختلف پروژه خوانایی کلی برنامه را کاهش میدهد.
بر همین اساس، یکی از اصول مهم برنامه نویسی تحت عنوان «خودت را تکرار نکن» (Dont Repeat Yourself | DRY) به همین موضوع اشاره دارد. استفاده از متغیرها در برنامه نویسی از نوشتن مکرر دادههای یکسان جلوگیری میکند و توابع در برنامه نویسی نیز از نوشتن چند باره یک عملکرد جلوگیری میکنند.
مزایای استفاده از تابع در PHP چیست؟
استفاده از توابع در برنامه نویسی مزایای بسیاری را به دنبال دارد. در ادامه به ۳ مورد از مهمترین مزایای استفاده از تابع در PHP اشاره شده است.
- قابلیت استفاده مجدد کد: تعریف تابع در PHP تنها یک مرتبه صورت میگیرد و میتوان تابع تعریف شده را چندین بار فراخوانی کرد.
- کدنویسی کمتر: استفاده از توابع حجم کدهای برنامه را نیز کاهش میدهد، زیرا در این صورت منطق اصلی برنامه تنها یک مرتبه نوشته میشود و میتوان چندین مرتبه آن را فراخوانی کرد.
- درک آسان: استفاده از تابع در PHP منجر به جدا شدن منطق پیادهسازی برنامه میشود. تقسیم شدن منطق برنامه در قالب توابع مختلف به درک آسانتر جریان برنامه میانجامد.
- افزایش سرعت توسعه: برنامهنویسان با توجه به قابلیت استفاده مجدد توابع میتوانند برای افزایش سرعت توسعه برنامه از توابع پیش ساخته استفاده کنند.
انواع تابع در PHP
همان طور که پیشتر نیز عنوان شد، توابع قطعه کدهایی هستند که با پردازش اطلاعات ورودی، خروجی مورد انتظار را ارائه میکنند. مهمترین ویژگی توابع نیز قابلیت استفاده مجدد آنها است که موجب کاهش خطوط کد و افزایش خوانایی برنامه میشوند.
در زبان برنامه نویسی PHP به طور پیشفرض بیش از ۱۰۰۰ تابع داخلی وجود دارد که هر کدام برای انجام عملیاتی خاص در نظر گرفته شده است. علاوه بر این، برنامه نویس نیز با توجه به نیاز پروژه امکان تعریف تابع در PHP را دارد. بر همین اساس، توابع در PHP به دو دسته کلی زیر تقسیم میشوند.
- «توابع داخلی» (Built-in Function)
- «توابع تعریف شده توسط کاربر» (User-Defined Functions)
در ادامه این مطلب به طور کامل به بررسی هر دو نوع تابع موجود در PHP خواهیم پرداخت. همچنین، مواردی همچون تعریف تابع در PHP و نحوه استفاده و فراخوانی تابع در PHP به همراه جزئیات کامل مورد بررسی قرار خواهد گرفت.
توابع تعریف شده توسط کاربر
توابع تعریف شده توسط کاربر رایجترین و پرکاربردترین نوع از توابع هستند که با توجه به عنوان خود به طور کامل توسط برنامهنویس تعریف میشوند. در واقع، بسیاری از افراد با شنیدن نام تابع به طور ناخودآگاه این دست از توابع را در ذهن خود تجسم میکنند.
برنامهنویس برای تعریف تابع در PHP ابتدا نیاز پروژه را در نظر میگیرید و سپس، نسبت به تعیین ساختار و پیادهسازی تابع مورد نظر اقدام میکند. در انتها نیز برای استفاده از تابع باید آن را فراخوانی کند. در ادامه این بخش از نوشته تمام مراحل مورد نیاز برای تعریف و فراخوانی تابع در PHP عنوان شده است.
تعریف تابع در PHP
برای نوشتن تابع در PHP ابتدا باید ساختار آن ایجاد شود. در پیادهسازی ساختار تابع در PHP نکات زیر را باید رعایت کرد.
- قبل از نوشتن نام تابع باید کلمه کلیدیfunction را قرار داد.
- نام تابع نباید با یک کاراکتر عددی شروع شود.
- برای تعیین نام تابع دستورالعمل مشخصی وجود ندارد، ولی برای بهبود خوانایی کد و کاهش پیچیدگیهای کد نویسی بهتر است که تابع با توجه به عملکرد آن نامگذاری شود.
- بعد از نام تابع پرانتزهای باز و بسته() برای تعیین ورودیهای آن قرار داده میشوند.
- کدهای مربوط به تابع نیز باید درون کروشههای باز و بسته قرار گیرند.
با توجه به نکات ارائه شده در بالا، قطعه کد زیر ساختار استاندارد تعریف تابع در PHP را نشان میدهد.
1<?php
2function hello() {
3 echo "Hello World!";
4}
در قطعه کد بالا تابع با نامhello() تعریف شده است که به کمک دستورecho عبارتHello World! را در خروجی چاپ میکند.
فراخوانی تابع در PHP
توابع تعریف شده در PHP تا زمان فراخوانی توسط کاربر هیچ کاری نمیدهند و خروجی نیز نخواهند داشت. برای فراخوانی تابع در PHP از نام تابع به همراه پرانتزهای مربوط به آن استفاده میشود. به عنوان مثال، در قطعه کد زیر فراخوانی مربوط به تابعhello() در مثال قبل آورده شده است.
1<?php
2function hello() {
3 echo "Hello World!";
4}
5hello();
با فراخوانی تابعhello() در مثال بالا عبارتHello World! در خروجی چاپ خواهد شد.
Output Hello World!
نمونه کد بالا تعریف و فراخوانی تابع در PHP را با مثالی ساده نشان داد. البته این نمونه کد مثال خوبی از کاربرد تابع نبود، زیرا هیچ گونه ورودی و رابطهای در تابع وجود نداشت و تنها عبارتی در خروجی چاپ شد. در ادامه مطلب به بررسی تعریف تابع به همراه ورودیهای مختلف و نحوه قرارگیری آنها در تابع پرداخته خواهد شد.
تفاوت آرگومان و پارامتر چیست؟
قبل از بررسی نحوه استفاده از ورودیهای مختلف در توابع بهتر است به این سوال پاسخ داده شود که تفاوت «آرگومان» (Argument) و «پارامتر» (Parameter) چیست. این دو واژه در بحث مربوط به ورودیهای تابع بسیار مورد استفاده قرار میگیرند. بسیاری از افراد این دو واژه کاملاً متفاوت را به صورت یکسان در نظر میگیرند. در واقع، پارامترها متغیرهایی هستند که هنگام تعریف تابع به عنوان ورودی مشخص میشوند. از سویی دیگر، آرگومانها متغیرهایی هستند که هنگام فراخوانی توابع به آنها ارسال میشوند.
مثالی از کاربرد پارامتر و آرگومان در تعریف تابع در PHP
برای درک بهتر این دو مفهوم مثال مربوط به تابعhello() را در نظر بگیرید. در این مثال، برای ایجاد ارتباط بین ورودی و خروجی تابع باید مقداری به عنوان پارامتر ورودی تابع تعریف شود. این پارامتر را باید به عنوان متغیر بین پرانتزهای تعریف تابع قرار داد.