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

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

تابع تعریف شده توسط کاربر PHP چیست؟ (توابع تعریف شده توسط کاربر)

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

ایجاد تابع PHP (تعریف تابع)

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

function functionName() {
// Çalıştırılacak kodlar
}

قوانین ایجاد توابع PHP

  • نام توابع PHP فقط می تواند با حروف، زیرخط '_' و علامت دلار '} شروع شود.
  • نام توابع PHP نمی تواند با یک عدد شروع شود. با این حال، اعداد را می توان در کاراکترهای بعد از اولین کاراکتر استفاده کرد.
  • نام توابع PHP نمی تواند حاوی کلمات رزرو شده توسط PHP باشد (if، break، for، const و غیره).
  • نام توابع PHP به حروف بزرگ و کوچک حساس نیستند.

پیشنهادات ایجاد تابع PHP

  • به توابع PHP باید نام هایی متناسب با عملکرد آنها داده شود. به عنوان مثال، اگر تابع یک پیام را چاپ کند، نام تابع ممکن است writeMsg() باشد. با این حال، فراخوانی تابعی که یک پیام function1() را چاپ می کند بی معنی است.
  • قوانین قرارداد نامگذاری مورد استفاده در هنگام نامگذاری توابع PHP باید رعایت شود. اگر از قرارداد نامگذاری استفاده نمی شود، PHP PSR باید دنبال شود.
  • در توابع تعریف شده به عنوان PHP 7 نوع اعلام/بازگشت اشاره نوع توصیه می شود انجام شود.

توابع PHP

در مثال زیر با استفاده از کلمه کلیدی تابع تابعی به نام writeMsg ایجاد کردیم. ما "Hello World" را با اکو در بلوک کد تابع چاپ کردیم. سپس تابع را فراخوانی کردیم و خروجی "Hello World" را دریافت کردیم.

function writeMsg()
{
    echo 'Hello World!';
}
writeMsg();
// Çıktı: Hello World

توابع PHP: آرگومان ها

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

نکته: ما می توانیم بیش از یک آرگومان تعریف کنیم.

function numbers($number1, $number2)
{
    echo "Sayı 1: {$number1} </br> Sayı 2: {$number2}";
}
echo numbers(21, 4);
/*
 * Çıktı:
Sayı 1: 21
Sayı 2: 4
*/

توابع PHP: مقدار بازگشتی

در PHP می توانیم مقدار پیش فرض را به آرگومان ها اختصاص دهیم. اگر هنگام فراخوانی تابع مقداری داده نشود، از مقدار پیش فرض استفاده می شود. در مثال زیر، مقدار پیش‌فرض را 30 قرار دادیم. از مقدار پیش‌فرض استفاده شد، زیرا زمانی که برای اولین بار تابع را فراخوانی کردیم، برای آرگومان ارزش قائل نشدیم. وقتی بار دوم آن را فراخوانی کردیم، مقداری که به آرگومان دادیم استفاده شد.

function calcModulus($number1, $number2)
{
    return $number1 % $number2;
}
echo calcModulus(21, 4);
// Çıktı: 1

توابع PHP: مقدار آرگومان پیش فرض

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

function age($age = 30)
{
    echo "Senin yaşın: {$age} </br>";
}
age(); // Çıktı: 30
age(20); // Çıktı: 20

PHP یک زبان بدون قوانین سختگیرانه است (زبان تایپ آزاد)

PHP یک زبان بدون قوانین سختگیرانه است. در PHP، اجباری نیست که به PHP بگوییم متغیر چه نوع داده ای است. از آنجایی که انواع داده دقیقاً تعریف نشده‌اند، می‌توانیم یک نوع داده رشته‌ای را به متغیری که دارای یک نوع داده عدد صحیح است اضافه کنیم. همین امر در مورد توابع نیز صادق است. از PHP 7، می‌توانیم انواع آرگومان و نوع مقدار را در توابع تعریف کنیم. کد تمیز این برای نوشتن (کد پاک) توصیه می شود، اما در PHP 7 اجباری نیست.

function addNumbers(int $a, int $b)
{
    return $a + $b;
}
echo addNumbers(5, "5 gün");
// Çıktı: 10

اعلامیه های نوع بازگشت PHP

در PHP می توانیم نوع مقدار بازگشتی را در حالت سخت تعریف کنیم. در مثال زیر مقداری را که تابع برمی گرداند تعیین کردیم.

function addNumbers(float $a, int $b): float
{
    return $a + $b;
}
echo addNumbers(1.2, 6);
// Çıktı: 7.2