آموزش PHP : توابع

0

آموزش PHP 7

در این قسمت از آموزش برنامه نویسی به زبان پی اچ پی به شرح کاربرد و نحوه کار با توابع در PHP خواهیم پرداخت. قدرت واقعی زبان برنامه نویسی PHP در توابع آن نهفته است. این زبان دارای بیش از 1000 تابع از پیش آماده درون ساخت است که میتوانند عملیات مختلفی را برای شما انجام دهند. از شما دعوت میکنیم در ادامه این آموزش با مسترکد همراه شده و ادامه این مبحث آموزشی را به همراه ما دنبال کنید.

توابع تعریف شده توسط کاربر در PHP

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

تعریف کردن تابع در PHP

برای تعریف یک تابع از کلمه function استفاده میکنیم. سینتکس کلی تعریف تابع به شکل زیر است :

نام تابع میتواند با حروف یا آندراسکور (آندرلاین) شروع شود. نام تابع نمیتواند با عدد آغاز شود. همیشه نامی را برای توابع انتخاب کنید که کارکرد آنها را به خوبی شرح دهد.

توجه : نام تابع در PHP به کوچکی و بزرگی حروف حساس نیست.

در مثال زیر تابعی با نام writeMsg() ساخته ایم. آکولاد ابتدایی بیانگر شروع بلاک کد تابع است و آکولاد پایانی نمایانگر پایان کد تابع است. تابع زیر پیام “سلام دنیا!” را در خروجی به نمایش در می آید. برای فراخوانی تابع کافی است که نام آن را به همراه پرانتز باز و بسته در محل دلخواه در کد درج کنیم :

آرگومان های تابع در PHP (ورودی های تابع)

برای ارسال اطلاعات به تابع از آرگومان ها استفاده میکنیم. آرگومان ها مانند متغیر ها هستند.

آرگومان ها را پس از نام تابع درون پرانتز درج میکنیم. هر تابع میتواند به تعداد دلخواه آرگومان داشته باشد. آرگومان ها را با کاما از یکدیگر جدا میکنیم.

در مثال زیر تابعی دارای یک آرگومان ورودی ($fname) تعریف کرده ایم. وقتی تابع familyName() فراخوانی شود، نامی را به همراه آن به تابع ارسال خواهیم کرد. این نام در ابع مورد استفاده قرار گرفته و خروجی تابع اسامی مختلفی با نام خانوادگی یکسان خواهد بود :

در مثال زیر تابعی با دو آرگومان ورودی تعریف کرده ایم ($fname و $year) :

نوع متغیر ها در پی اچ پی

اگر دقت کرده باشید در توابع بالا ما نوع متغیر را برای توابع مشخص نکرده ایم. PHP به طور اتوماتیک بر اساس مقدار تابع، نوع مناسبی را برای آن در نظر خواهد گرفت. به این جهت که نوع توابع به صورت اکید مشخص نمیشوند، بنابراین شما میتوانید بدون هیچ خطایی یک رشته را به یک عدد اضافه کنید!

در PHP 7 امکان مشخص کردن نوع متغیر ها نیز به زبان PHP افزوده شده است. بنابراین در پی اچ پی 7 میتوانیم در زمان تعریف تابع مشخص کنیم که تابع انتظار چه نوع متغیر هایی را به عنوان ورودی دارد. با فعال کردن این الزام به صورت اکید در صورتی که نوع ارجاع داده شده به تابع اشتباه باشد، خطای مهلک یا Fatal Error اتفاق خواهد افتاد.

در مثال زیر بدون فعال کردن الزام نوع داده اکید یک عدد را به یک رشته افزوده ایم :

در مثال زیر ابتدا الزام نوع داده اکید را فعال کرده ایم و سپس همان عملیات قبلی را انجام داده ایم. در این حالت کد، خطا تولید خواهد کرد :

برای فعال کردن حالت strict یا الزام نوع داده اکید، از declare(strict_types=1); استفاده میکنیم. این تعریف باید در اولین خط کد انجام شود. درج این کد مشخص میکند که توابع موجود در آن فایل باید فقط آرگومان هایی با نوع مشخص شده را پذیرا باشند.

فعال کردن حالت strict، خواندن کد را آسان تر میکند و باعث میشود که هر چیزی دقیقا همانطور که قصد برنامه نویس بوده مورد استفاده قرار گیرد.

از این پس در این آموزش از الزام اکید نوع داده (strict) استفاده خواهیم کرد.

مقدار پیشفرض آرگومان در پی اچ پی

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

مقادیر بازگشتی در توابع پی اچ پی

برای اینکه تابع مقداری را به عنوان خروجی بازگرداند از دستور return استفاده میکنیم :

تعریف نوع بازگشتی در پی اچ پی

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

برای تعریف نوع بازگشتی پس از پرانتز انتهایی تعریف تابع و پیش از آکولاد ابتدایی، یک علامت : قرار داده و نوعی که به عنوان مقدار بازگشتی در نظر داریم را تعیین میکنیم. به مثال زیر توجه کنید :

در مقال بالا نوع بازگشتی تابع float است. توجه داشته باشید که نوع داده بازگشتی میتواند متفاوت از نوع آرگومان های ورودی باشد. اما باید دقت کنید که نوعی که تابع باز میگرداند با آنچه تعیین کرده اید مطابقت داشته باشد. به مثال زیر توجه کنید :

مطالعه بخش بعدی : آرایه ها در PHP

دسترسی آسان به این مطلب لینک کوتاه :
شاید از اینها هم خوشتان بیاید!
ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.