เป็นฟังก์ชั่นที่สร้างขึ้นมาเอง เพื่อให้ทำงานนอกเหนือจากฟังก์ชั่นที่มีอยู่ใน PHP หรือเราต้องการให้โปรแกรมทำงานตรงกับความต้องการของเรา
รูปแบบฟังก์ชัน
<?php function ชื่อฟังก์ชั่น (ค่าที่ส่งให้) { การทำงานของฟังก์ชั่น } ?>
การเรียกใช้ฟังก์ชันปกติ ไม่มีการส่งค่าพารามิเตอร์
<?php function zezalearning() { echo "welcome to zezalearning program"; } zezalearning(); //แสดงผล welcome to zezalearning program ?>
การเรียกใช้ฟังก์ชัน ที่มีการส่งค่าพารามิเตอร์
<?php function test1($r) { echo $r * 5; } function test2($h, $w) { echo $h * $w; } function test3($b,$c){ echo $b + $c; } test1(15); // ส่งค่า 15 เข้าฟังก์ชันไปคูณกับ 5 ผลที่ได้ 75 echo "<br />"; test2(5, 2); // ส่ง 5,2 ไป แล้วคูณกัน ผลที่ได้ 10 $x =4; $y = 8; echo "<br/>"; test3($x,$y); // ส่ง $x,$y ไป เก็บไว้ที่ $b,$c แล้วบวกกัน แล้ว return ค่าบวก ผลทีได้ 12 ?>
การส่งค่าพารามิเตอร์ ตัวแปรเดียวกันแต่ค่าไม่เท่ากัน เพราะมีการ return ค่า $money ด้วยคำสั่ง &$money
<?php function test_vat(&$money, $vat) { // return $money ทำให้ค่า money เป็นค่าที่คำนวณ $money += $money * $vat; } $money = 200000; $vat = 0.7; echo " money = " . $money; // 200000 echo "<br />"; test_vat($money, $vat); echo "money + vat = " . $money; // 214000 ?>
การกำหนดค่าเริ่มต้นให้ฟังก์ชั่น
<?php function test_vat(&$money, $vat = 0.07) { $money += $money * $vat; } $money = $money2 = 200000; echo " money = " . $money; // 20000 echo "<br />"; test_vat($money); echo "money + vat = " . $money; // 214000 echo "<br/>"; echo " money2 = " . $money2; // 20000 echo "<br />"; test_vat($money2, 0.2); //vat 0.2 echo "money2 + vat = " . $money2; // 240000 ?>
ฟังก์ชั่นที่คืนค่าแบบ array
<?php function user() { $resume[] = "bom zezalearning"; $resume[] = "zezalearning@gmail.com"; $resume[] = "https://sites.google.com/site/zezalearning/home"; return $resume; } $openresume = user(); echo "Show Array[0] = ".$openresume[0]."<br/>"; echo "Show Array[2] = ".$openresume[2]."<br/><br/>"; list($name, $email, $web) = user(); echo "Email :: ".$email."<br/>"; echo "Websit :: ".$web; ?>