در اصل قدرت php در توابع است
در php حدود 700 تابع از قبل ساخته شده وجود دارد
اما علاوه بر توابع از قبل ساخته شده ، شما می توانید توابع موردنیاز خود را نیز بسازید
اگر می خواهید در زمان بار گذاری صفحه وب ، دستورات php خاصی خودکار اجرا نشوند انها راباید درون توابع قرار دهید
شما می توانید هرجایی از صفحه وب ، تابع php تان را فراخوانی کنید
برای اجرا شدن دستورات توابع باید تابع مورد نظر را فراخوانی نمائید
تعریف و فراخوانی تابع بدون پارامتر
روش نوشتن تابع :
function نام تابع()
{
دستورات تابع
}
 برای تابع خود ، نام مجازی را انتخاب نمائید . نامگذاری توابع از قوانین نام گذاری متغیرها پیروی می کند
 مثال
 تابع زیر شامل دستوری است که نام کسی را در خروجی نمایش می دهد
 <html>
<body>

<?php
function writeName()
{
echo "Kai Jim Refsnes";
}

echo "My name is ";
writeName();
?>

</body>
</html>
 خروجی برنامه بالا عبارت My name is Kai Jim Refsnes  است
 همانطور که مشاهده می کنید برای فراخوانی تابع باید نام انرا به همراه پرانتز باز و بسته اش هرجا که لازم داریم بنویسیم
تعریف و فراخوانی تابع دارای پارامتر
 برا اینکه تابع کاربردی تر شود ، می توان از پارامترها استفاده نمود
 پارامتر مثل یک متغیر است . پارامترها را بعد از نام تابع و درون پرانتز جلوی ان مشخص می کنیم
 مثال 1
 تابع زیر اسم های مختلف اما فامیلی های یکسانی را در خروجی نمایش می دهد
 <html>
<body>

<?php
function writeName($fname)
{
echo $fname . " Refsnes.<br>";
}

echo "My name is ";
writeName("Kai Jim");
echo "My sister's name is ";
writeName("Hege");
echo "My brother's name is ";
writeName("Stale");
?>

</body>
</html>
 خروجی دستورات بالا بصورت زیر است
 My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes.
My brother's name is Stale Refsnes.
 مثال 2
 تابع مثال زیر دارای دو پارامتر است
 <html>
<body>

<?php
function writeName($fname,$punctuation)
{
echo $fname . " Refsnes" . $punctuation . "<br>";
}

echo "My name is ";
writeName("Kai Jim",".");
echo "My sister's name is ";
writeName("Hege","!");
echo "My brother's name is ";
writeName("Ståle","?");
?>

</body>
</html>
 خروجی دستورات بالا بصورت زیر می باشد
 My name is Kai Jim Refsnes.
My sister's name is Hege Refsnes!
My brother's name is Ståle Refsnes?
تعیین مقدار بازگشتی تابع با دستور return
 مثال
 <html>
<body>

<?php
function add($x,$y)
{
$total=$x+$y;
return $total;
}

echo "1 + 16 = " . add(1,16);
?>

</body>
</html>
 خروجی دستور بالا بصورت زیر است
1 + 16 = 17 ;
 با دستور return مقدار بازگشتی در نام تابع قرار می گیرد و می توان از این مقدار در محاسبات استفاده نمود
 در ضمن عملگر نقطه در دستور echo بالا کاری که می کند این است که عبارت رشته ای "1+16" را به حاصل تابع add می چسباند یعنی حاصل تابع add را به رشته تبدیل کرده و این دو رشته را به هم می چسباند