مفهوم توابع در php

تاریخ: 16 فروردین 1400

مفهوم توابع در php یکی از اساسی ترین مفاهیم این زبان می باشد و لازم است هر توسعه دهنده ی php به مباحث آن مسلط باشد.

توابع در php یک تکه کد مشخص هستند که در یک بلوک قرار می گیرند (Encapsulate شده اند) و توسط نام آنها می توانند بارها و بارها استفاده شوند.

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

ساختار توابع در php

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


function foo($argument1, $argument2, ...) {
    return $value;
}

آرگومان ها همان ورودی تابع هستند و مقدار return همان خروجی تابع.

مراحل تعریف تابع:

  1. هدف تابع را به طور دقیق مشخص کنیم
  2. با توجه به قوانین نامگذاری توابع، یک نام اختصاصی و با فرمت درست انتخاب می کنیم
  3. داده های ورودی به تابع را مشخص کنیم
  4. دستورات مدنظر را می نویسیم و متغیرهای موردنیاز را تعریف می کنیم
  5. اگر خروجی مدنظر است، نتیجه را بر می گردانیم

 

فراخوانی توابع در php

صرف اینکه تابع را تعریف کنید هیچ اتفاقی در اسکریپت نمی افتد.

دستورات تابع زمانی اجرا می شوند که آن تابع را فراخوانی کنیم. اصطلاحا آن را call کنیم.

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


foo($argument1, $argument2, ...);

اصولا زمانی که موتور php به تابع می رسد این اتفاقات می افتد:

  1. موتور php به فراخوانی تابع می رسد و آن را شناسایی می کند.
  2. تابع را پیدا می کند و وارد آن می شود.
  3. همه دستورات آن تابع را اجرا می کند.
  4. از تابع خارج می شود و به جایی که قبلا بود بر می گردد. (خط بعد از فراخوانی تابع)
  5. هر مقدار برگشتی و محاسبه شده خروجی را نقطه فراخوانی تابع نشان می دهد.

 

جداسازی markup از منطق برنامه توسط توابع

یکی از مزیت های اصلی توابع، جداکردن مارکاپ از منطق برنامه است. این ویژگی باعث می شود خوانایی اسکریپت بسیار بالا رود.

تصور کنید که یک صفحه markup (مثل html) داریم و قرار است یک عدد در آن نشان دهیم که برای آن باید 10 خط کد php نوشته شود.

اگر این صفحه جزئیات بیشتری داشته باشد، کار مدیریت و توسعه آن سخت تر هم می شود.

ولی توابع به ما این امکان را می دهند که منطق و برنامه نویسی را در یک مکان مشخص و خارج از آن فایل تعریف کنیم و در آن فایل صرفا آن تابع را فراخوانی کنیم:

$text = 'Lorem ipsum is a placeholder text commonly used to';
$limit = 5;
if (str_word_count($text, 0) > $limit) {
    $words = str_word_count($text, 2);
    $pos = array_keys($words);
    $text = substr($text, 0, $pos[$limit]) . '...';
}
echo $text; //output: Lorem ipsum is a placeholder ...

 

دستور بالا اگر در فایل markup نوشته شود، هم باعث طولانی شدن کدها می شود و هم مدیریت آن سخت تر می شود. در ضمن استفاده از این کد در جای دیگر نیز امکان پذیر نیست الا اینکه همه ی آنها را منتقل کنیم.

اما با روش تابع، کل منطق برنامه را در جای دیگر تعریف می کنیم:

//functions.php file
function limitWord( $text, $limit ) {
    if (str_word_count($text, 0) > $limit) {
        $words = str_word_count($text, 2);
        $pos = array_keys($words);
        $text = substr($text, 0, $pos[$limit]) . '...';
    }
    return $text;
}

//markup file
$text = 'Lorem ipsum is a placeholder text commonly used to';
$limit = 5;
echo limitWord($text, $limit); //output: Lorem ipsum is a placeholder ...

مشاهده می کنید که ما تابع خودمان را در فایل functions.php تعریف کردیم و در فایل markup آن را فراخوانی نمودیم.

این تابع اکنون در سرتاسر اسکریپت قابل اجرا و استفاده می باشد. (قبل از استفاده باید require شود)

 

مزایای توابع در php

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

برخی از مزایای توابع در php:

  1. استفاده مجدد (Code Reusability): توابع را یکبار تعریف و بارها از آن استفاده می کنیم. کافیست در یک نقطه از اسکریپت خودمان، توابع مدنظر خود را تعریف کنیم. سپس می توانیم در همه جای برنامه از آن استفاده کنیم. حتی زمانی که از آن توابع در اسکریپت های دیگر نیاز داریم، می توانیم آن ها را در آن اسکریپت ها کپی پیست کنیم!
  2. کد کمتر (Less Code): زمانی که یک تکه کد را با صرفا فراخوانی نام تابع، بارها استفاده می کنیم، در واقع در هر استفاده، چندین خط کد کمتر خواهد شد و این یعنی برنامه ما دارای کدهای کمتری خواهد بود. این مزیت در اسکریپت های بزرگ بیشتر به چشم می آید.
  3. فهم ساده تر برنامه (Easy to understand): توابع، منطق برنامه را از ساختار markup صفحه جدا می کنند. لذا مدیریت آن ها و فهمیدن نحوه عملکرد آن ها ساده تر می شود.

 

نتیجه گیری

توابع بخش اصلی و جداناپذیر php هستند و شناخت مفهوم آن ها می تواند در استفاده از آن بسیار کاربردی باشد. وجود توابع، برنامه نویسی php را لذت بخش تر کرده اند و بواسطه آن ها کدهای بهتری خواهیم داشت.

اگر در مورد این مطلب نظری دارید، خوشحال می شویم از بخش نظرات، ارسال نمایید.

دیدگاهتان را بنویسید