تابع در PHP — تعریف به زبان ساده

عکس شاخص برای تابع در PHP

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

مقدمه

تابع در PHP می‌توانند به صورت توابع داخلی یا توابع کاربر تعریف‌شده «User-Defined Functions» وجود داشته باشند. توابع داخلی مانند ()strlen و ()array_merge از پیش در زبان PHP تعریف شده‌اند، در حالی که شما می‌توانید توابع خود را برای انجام عملیات خاص بر روی داده‌ها ایجاد کنید. علاوه بر این، نحوه ارسال پارامترها به تابع‌ها می‌تواند به صورت مقدار یا ارجاع باشد که این امر بر نحوه تعامل تابع با داده‌ها تأثیر می‌گذارد. فهم کامل از نحوه عملکرد تابع در PHP به شما کمک می‌کند که برنامه‌های خود را به شیوه‌ای موثرتر و کارآمدتر بنویسید.

در این آموزش، از سری مقاله های مجله پی استور با تابع در PHP آشنا خواهید شد و نحوه ارسال پارامترها به صورت مقدار «Pass by Value» و ارجاع «Pass by Reference» را خواهید آموخت.

پارامترهای تابع در PHP

یک تابع می‌تواند بدون پارامتر باشد یا شامل یک یا چند پارامتر باشد.

<?php

function function_name(parameter_list) 
{
}

هنگامی که یک تابع دارای چندین پارامتر باشد، باید آن‌ها را با استفاده از ویرگول ( , ) از یکدیگر جدا کنید.

مثال زیر تابعی با نام ()concat را تعریف می‌کند که دو رشته را به یکدیگر متصل کرده و یک رشته‌ی واحد ایجاد می‌کند:

<?php

function concat($str1, $str2)
{
 return $str1 . $str2;
}

تابع ()concat دارای دو پارامتر str1 و str2 است.

هنگامی که تابع ()concat را فراخوانی می‌کنید، باید دو آرگومان را که با این پارامترها مطابقت دارند، ارسال نمایید. به عنوان مثال:

<?php
function concat($str1, $str2)
{
 return $str1 . $str2;
}

$greeting = concat('Welcome ', 'Admin');
echo $greeting;

در این مثال، پارامتر str1 اولین آرگومان Welcome را دریافت خواهد کرد و پارامتر str2 دومین پارامتر Admin را دریافت می‌کند.

اگر تعداد پارامترهایی که به تابع ارسال می‌کنید کمتر از تعداد پارامترهای آن باشد، PHP خطا ایجاد خواهد کرد. به عنوان مثال:

<?php

function concat($str1, $str2)
{
 return $str1 . $str2;
}


$greeting = concat('Welcome');
echo $greeting;

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

<?php

function concat($str1, $str2)
{
 return $str1 . $str2;
}

$greeting = concat(
 'Welcome ',
 'Home'
);

echo $greeting;

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

عکس برای تابع در PHP

ویرگول اضافی در php

از PHP 7.0 به بعد، لیست پارامترها می‌تواند شامل یک ویرگول اضافی ( , ) باشد که مفسر PHP آن را نادیده خواهد گرفت. به عنوان مثال:

$greeting = concat(
 'Welcome ',
 'Home',
);

از PHP 8.0 به بعد، می‌توانید ویرگول اضافی ( , ) را در لیست پارامترها به این صورت قرار دهید:

function concat(
 $str1,
 $str2,
) {
 return $str1 . $str2;
}

ارسال آرگومان‌ ها به صورت مقدار در php

مثال زیر را در نظر بگیرید:

<?php

$counter = 1;
function increase($value)
{
 $value+= 1;
 echo $value. <br>; // 2
}

// increase the counter
increase($counter);

echo $counter . <br>; // 1

خروجی:

۲
۱

نحوه عملکرد این فرآیند

  • اولاً، متغیر  counter را تعریف کرده و مقدار آن را به یک مقداردهی اولیه یک تنظیم کنید.
  • دوم، تابع ()increase را تعریف کنید که پارامتر را به اندازه یک واحد افزایش داده و آن را نمایش دهد.
  • سوم، تابع ()increase را فراخوانی کرده و متغیر counter را به آن ارسال کنید.
  • در نهایت، متغیر $counter را نمایش دهید.

هنگامی که متغیر counter را به تابع ()increase ارسال می‌کنید، تابع مقدار آن را به اندازه یک واحد افزایش می‌دهد. بنابراین، زمانی که مقدار counter را داخل تابع نمایش می‌دهید، مقدار ۲ خواهد بود. اما پس از فراخوانی تابع، مقدار counter همچنان یک باقی می‌ماند. این بدان معنی است که تابع ()increase مقدار متغیر counter را در خارج از تابع تغییر نمی‌دهد. آنچه که اتفاق می‌افتد این است که زمانی که متغیر counter را به تابع ()increase ارسال می‌کنید، تابع یک کپی از متغیر counter ایجاد کرده و آن را تغییر می‌دهد. در واقع، متغیر اصلی تغییری نمی‌کند.

زمانی که مقدار یک پارامتر در داخل تابع تغییر می‌کند ولی در خارج از تابع تغییر نمی‌کند، به این معنی است که پارامتر به صورت مقدار ارسال شده است. به طور پیش‌فرض، در PHP پارامترها به صورت مقدار ارسال می‌شوند. اگر بخواهید که تابع پارامترها را تغییر دهد، باید پارامترها را به صورت ارجاع ارسال کنید.

ارسال پارامترها به صورت ارجاع در php

برای ارسال یک پارامتر به صورت ارجاع، باید از اپراتور & قبل از نام پارامتر در تعریف تابع استفاده کنید، مانند مثال زیر:

<?php

$counter = 1;
function increase( &$value )
{
 $value += 1;
 echo $value . <br>; // 2
}

// increase the counter
increase($counter);

echo $counter . <br>; // 2

خروجی:

۲
۲

در این مثال، تغییر متغیر counter هم داخل تابع و هم خارج از تابع اعمال می‌شود.

نتیجه گیری

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

میزان رضایتمندی
لطفاً میزان رضایت خودتان را از این مطلب با دادن امتیاز اعلام کنید.
[ امتیاز میانگین 0 از 0 نفر ]
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع و مراجع:
phptutorial zend medium

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *



برچسب‌ها:
php


پیمایش به بالا