PHP – توابع (Functions)
توابع در PHP
توابع داخلی PHP
PHP بیش از 1000 تابع داخلی دارد که میتوانند مستقیماً در داخل یک اسکریپت فراخوانی شوند تا یک وظیفه خاص را انجام دهند.
توابع تعریف شده توسط کاربر در PHP
علاوه بر توابع داخلی، شما میتوانید توابع سفارشی خود را نیز ایجاد کنید. یک تابع، بلوکی از دستورات است که میتواند بارها در یک برنامه استفاده شود. تابع زمانی اجرا میشود که به آن فراخوانی شود.
ایجاد یک تابع
اعلان یک تابع سفارشی با کلمه کلیدی function
شروع میشود، به دنبال آن نام تابع و سپس پرانتزهای باز و بسته:
function myMessage() {
echo "Hello world!";
}
فراخوانی یک تابع
برای فراخوانی یک تابع، کافی است نام تابع را به همراه پرانتزهای باز و بسته بنویسید:
function myMessage() {
echo "Hello world!";
}
myMessage();
توابع PHP - پارامترها
اطلاعات میتوانند از طریق پارامترها به توابع منتقل شوند. یک پارامتر مانند یک متغیر است. پارامترها پس از نام تابع، داخل پرانتزها مشخص میشوند. شما میتوانید هر تعداد پارامتر که بخواهید اضافه کنید، فقط آنها را با کاما جدا کنید.
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
مثالی با دو پارامتر:
function familyName($fname, $year) {
echo "$fname Refsnes. Born in $year <br>";
}
familyName("Hege", "1975");
familyName("Stale", "1978");
familyName("Kai Jim", "1983");
مقدار پیشفرض پارامترها
میتوانید برای پارامترهای تابع مقدار پیشفرض تعیین کنید. اگر تابع بدون پارامتر فراخوانی شود، مقدار پیشفرض استفاده خواهد شد:
function setHeight($minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // مقدار پیشفرض 50 استفاده میشود
setHeight(135);
setHeight(80);
توابع PHP - بازگشت مقادیر
برای بازگرداندن یک مقدار از یک تابع، از دستور return
استفاده کنید:
function sum($x, $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
ارسال پارامترها با ارجاع
در PHP، پارامترها به طور پیشفرض با مقدار ارسال میشوند. این به این معنی است که یک کپی از مقدار در تابع استفاده میشود و متغیری که به تابع ارسال شده نمیتواند تغییر کند. با استفاده از عملگر &
میتوان پارامتر را با ارجاع ارسال کرد:
function add_five(&$value) {
$value += 5;
}
$num = 2;
add_five($num);
echo $num; // خروجی: 7
تعداد متغیر پارامترها
ا استفاده از عملگر ...
قبل از پارامتر تابع، میتوانید تعداد نامشخصی از پارامترها را بپذیرید. این پارامترها به یک آرایه تبدیل میشوند:
function sumMyNumbers(...$x) {
$n = 0;
$len = count($x);
for($i = 0; $i < $len; $i++) {
$n += $x[$i];
}
return $n;
}
$a = sumMyNumbers(5, 2, 6, 2, 7, 7);
echo $a; // خروجی: 29
تنها یک پارامتر با طول متغیر میتواند داشته باشید و باید آخرین پارامتر باشد:
function myFamily($lastname, ...$firstname) {
$txt = "";
$len = count($firstname);
for($i = 0; $i < $len; $i++) {
$txt = $txt."Hi, $firstname[$i] $lastname.<br>";
}
return $txt;
}
$a = myFamily("Doe", "Jane", "John", "Joey");
echo $a;
زبان نوع گسترش یافته در PHP
PHP 7 شامل اعلانهای نوع برای آرگومانهای توابع است. با فعال کردن اعلانهای سخت، اگر نوع دادهها همخوانی نداشته باشند، یک “خطای مهلک” رخ خواهد داد.
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5 days"); // خروجی: 10
برای فعال کردن اعلانهای سخت:
<?php declare(strict_types=1); // نیاز به سخت
function addNumbers(int $a, int $b) {
return $a + $b;
}
echo addNumbers(5, "5 days"); // خطای مهلک
?>
اعلان نوع بازگشت
PHP 7 همچنین از اعلان نوع برای بازگشت تابع پشتیبانی میکند:
<?php declare(strict_types=1); // نیاز به سخت
function addNumbers(float $a, float $b) : float {
return $a + $b;
}
echo addNumbers(1.2, 5.2); // خروجی: 6.4
?>
میتوانید نوع بازگشت را متفاوت از نوع آرگومانها تعیین کنید، اما اطمینان حاصل کنید که بازگشت، نوع صحیحی است:
<?php declare(strict_types=1); // نیاز به سخت
function addNumbers(float $a, float $b) : int {
return (int)($a + $b);
}
echo addNumbers(1.2, 5.2); // خروجی: 6
?>
توابع در PHP ابزارهای بسیار قدرتمندی هستند که میتوانند به شما در ساخت برنامههای پیچیده و قابل مدیریت کمک کنند. با استفاده از توابع میتوانید کدهای خود را سازماندهی کرده و خوانایی و قابلیت نگهداری آنها را افزایش دهید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام