Hăm do người sử dụng định nghĩa cho phĩp bạn xử lý những tâc vụ thường lặp đi lặp lại trong ứng dụng. Để khai bao hăm, bạn sử dụng từ khoâ function với cú phâp tương tự như sau:
function functioname($parameter) {
return value; }
Trong trường hợp hăm không có giâ trị trả về thì hăm được xem như thủ tục. Ngoăi ra, bạn có thể khai bâo tham số tuỳ chọn bằng câch gân giâ trị mặc định cho tham số. Ví dụ chúng ta khai bâo:
function functioname($parameter1, $parameter2=10 ) {
return value; }
Đối với trường hợp năy thì tham số $parameter1 lă tham số bắt buộc vă tham số $parameter2 lă tham số tuỳ chọn, khi gọi hăm nếu không cung cấp tham số cho $parameter2 thì tham số năy có giâ trị lă 10.
Ví dụ, bạn khai bâo trang function.php có hăm getResult nhận hai số vă phĩp toân sau đó tuỳ thuộc văo phĩp toân hăm trả về kết quả. Nếu người sử dụng không cung vấp phĩp toân thì mặc định lă phĩp toân +. <HTML> <HEAD> <TITLE>::Welcome to PHP</TITLE> </HEAD> <BODY> <h4>Function</h4>
case "*":
$result=$number1*$number2; break; case "/": if($number2!=0)
$result=$number1/$number2; else
break; case "%": $result=0; if($number2!=0) $result=$number1%$number2; else break; } $result=0; return $result; }
echo "result of default operator: ".getResult(10,20); echo "<br>"; echo "result of * operator: ".getResult(10,20,"*");
?>
</BODY> </HTML>
Nếu muốn định nghĩa function không có giâ trị trả về, bạn có thể khai bâo trong trang void.php như ví dụ sau:
...
function calloperator() {
echo "result of default operator: ".getResult(10,20); echo "<br>"; echo "result of * operator: ".getResult(10,20,"*");
}
calloperator(); ?>
</BODY> </HTML>
Trong trường hợp truyền tham số như tham biến, bạn sử dụng ký hiệu & trước tham số, chẳng hạn chúng ta khai bâo hăm có tham biến có tín average như trong trang reference.php như sau:
<HTML> <HEAD> <TITLE>::Welcome to PHP</TITLE> </HEAD> <BODY> <h4>Function</h4> <?php
function getAmounts($quantity, $price,$average) {
$result=0;
$result=$quantity*$price;
$average=$result*6/12; return $result; }
$bq=0;
echo "result is : ".getAmounts(10,20,$bq); echo "<br>"; echo "result of Average is : ".$bq;
?>
</BODY> </HTML>
Trong trường hợp trín thì hăm getAmount có tham số $average lă tham biến còn hăm getAmounts có tham số $average lă tham trị, vă kết quả trả về của biến $bq khi gọi hăm getAmount lă 100 trong khi đó giâ trị của biến năy trong hăm getAmounts lă 0.