บทที่ 5 Function
Function Function เป็นการแบ่งโค้ดโปรแกรมออกเป็นส่วนย่อยๆ เพื่อทำงานบางอย่าง - โค้ดโปรแกรมเรียงต่อกันยาว - สามารถเรียกใช้ Function ซ้ำได้
3 function function_name([arguments]) {…. } function_name([arguments ] ); รูปแบบ ประกาศ function ส่งค่าแบบ passing by value รูปแบบ เรียกใช้ function function_name : ชื่อฟังก์ชัน เป็น insensitive case ไม่ว่าจะเป็นตัวอักษรใหญ่หรือเล็ก เป็นชื่อเดียวกัน เช่น ShowWord, showword, SHOWWORD, SHowWorD เป็นฟังก์ชันเดียวกัน arguments : ค่าที่มีการส่งให้ฟังก์ชัน อาจมีหรือไม่มีก็ได้
4 ตัวอย่าง 31_Function01.php <?php //function declaring function ShowWord01() { echo "Hello from ShowWord function "; } //end of function ShowWord01() ?>
5 ตัวอย่าง 31_Function01.php <?php ShowWord01(); //function declaring function ShowWord01() { echo "Hello from ShowWord function "; } //end of function ShowWord01() ShowWord01(); ?>
6 ตัวอย่าง 31_Function02.php <?php //function declaring function TestFunction($MyNum) { echo "My lucky number is $MyNum. "; } TestFunction(9); $a=45; TestFunction($a); ?>
7 ตัวอย่าง 31_Function021.php <?php function TestFunction($x,$y,$z) { echo "$x $z - $y $z = ".($x- $y)."$z " ; } $a=100; $b=60; $c=" บาท "; TestFunction($a,$b,$c); ?>
8 ตัวอย่าง 31_Function022.php <?php//passing array function TestFunction($b) { foreach($b as $i) {echo $i." ";} } $a=array(); $a[0]=100; $a[1]=200; $a[2]=300; TestFunction($a); ?>
9 function function_name([&arguments]) {…. } function_name([&arguments ] ); รูปแบบ ประกาศ function ส่งค่าแบบ passing by reference รูปแบบ เรียกใช้ function function_name : ชื่อฟังก์ชัน เป็น insensitive case ไม่ว่าจะเป็นตัวอักษรใหญ่หรือเล็ก เป็นชื่อเดียวกัน เช่น ShowWord, showword, SHOWWORD, SHowWorD เป็นฟังก์ชันเดียวกัน &arguments : ค่าที่มีการส่งให้ฟังก์ชันแบบ passing by reference อาจมีหรือไม่มีก็ได้
10 ตัวอย่าง 31_Function03.php <?php //passing by value function PowerOfTwo($MyNum) { echo "The value of $MyNum power of 2 is ".$MyNum*$MyNum.". "; $MyNum=$MyNum+1; } $a=4; echo "The value of $"."a is $a. "; PowerOfTwo($a); echo "The value of $"."a is $a."; ?>
11 ตัวอย่าง 31_Function04.php <?php //passing by reference function PowerOfTwo(&$MyNum) { echo "The value of $MyNum power of 2 is ".$MyNum*$MyNum.". "; $MyNum=$MyNum+1; } $a=4; echo "The value of $"."a is $a. "; PowerOfTwo(&$a); echo "The value of $"."a is $a."; ?>
12 แบบฝึกหัดที่ ) จงเขียนฟังชันสำหรับรับค่าตัวเลข 2 ค่าใดๆเพื่อทำการ คำนวณผลบวกของค่า 2 ค่านั้นและแสดงผลลัพธ์ทาง หน้าจอ แล้วทำการเรียกใช้ฟังก์ชัน 2.) จงเขียนฟังก์ชันสำหรับรับค่าตัวเลขและตรวจสอบว่า ตัวเลขที่รับเข้ามาเป็นเลขจำนวนคู่หรือจำนวนคี่ พร้อมทั้ง แสดงผลลัพธ์ทางหน้าจอ แล้วทำการเรียกใช้ฟังก์ชัน 3.) จงเขียนฟังก์ชันสำหรับรับค่าตัวเลข 1 ค่าเก็บไว้ในตัว แปร $MyNum แล้วเพิ่มค่าตัวแปร $MyNum เป็น 2 เท่า ของค่าเดิมแล้วแสดงค่าผ่านทางหน้าจอ โดยทำการส่งผ่าน ค่าแบบ passing by reference ( ให้นักศึกษากำหนดตัวแปร สำหรับส่งค่าให้ฟังก์ชันเอง )
13 Global Variable ตัวแปรที่ทุกฟังก์ชันในไฟล์เดียวกันรู้จัก function function_name([&arguments]) {…. global global_variable_name; } function function_name([&arguments]) {…. $GLOBAL[‘ global_variable_name_wi thout_$ ’]; } global_variable_name: ชื่อตัวแปรแบบ global ที่มี $ อยู่ข้างหน้าด้วย global_variable_name_without_$ : ชื่อตัวแปรแบบ global ที่ไม่มี $ อยู่ข้างหน้า
14 ตัวอย่าง 31_Function05.php <?php//NonGlobal variable in function $a=1; $b=2; function Test() { $c=3; $d=4; echo "Inside function : $a, $b, $c and $d. "; } Test(); echo "Outside function : $a, $b, $c and $d. "; ?>
15 ตัวอย่าง 31_Function06.php <?php//Global variable in function $a=1; $b=2; function Test() { $c=3; $d=4; global $a; echo "Inside function : $a, $b, $c and $d. "; } Test(); echo "Outside function : $a, $b, $c and $d. "; ?>
16 ตัวอย่าง 31_Function07.php <?php//Global variable in function $a=1; $b=2; function Test() { $c=3; $d=4; echo "Inside function : ".$GLOBALS['a'].", $b, $c and $d. "; } Test(); echo "Outside function : $a, $b, $c and $d. "; ?>
17 ตัวอย่าง 31_Function08.php <?php //Global variable in function $a=1;$b=2; function Test1()// {global $a,$c; $c=3; $d=4; echo "Inside function 1 : $a, $b, $c and $d. "; } function Test2()// {global $a,$c; echo "Inside function 2 : $a, $b, $c and $d. "; } Test1(); Test2(); echo "Outside function : $a, $b, $c and $d. "; ?>
18 return สำหรับการส่งค่ากลับจากการเรียกใช้ฟังก์ชัน function function_name([arguments]) {…. return return_value; } return_value : ค่าที่ส่งกลับจากการเรียกใช้ฟังก์ชัน
19 ตัวอย่าง 31_Function09.php <?php//return value function Test() { $a=8; return $a*$a; }//end function Test() $b=Test(); $c=Test()+1; echo Test().’ ’; echo $b.’ ’; echo $c.’ ’; echo Test()+1.’ ’; ?>
20 ตัวอย่าง 31_Function10.php <?php function Test($a) {$b=array(); $i=0; while($i<=5) {$b[]=$a+$i; $i++; } return $b; } $a=1; foreach (Test($a) as $c) {echo "$c ";} ?>
21 include() และ include_once() เหมือนเป็นการนำโค้ดโปรแกรมที่อยู่คนละไฟล์มาต่อกัน ทำให้เรียกใช้ฟังก์ชันหรือโค้ดที่อยู่คนละไฟล์ได้ include ‘file_name’; function_name([arguments]); file_name: ชื่อไฟล์และนามสกุลที่มีฟังก์ชันที่ต้องการใช้งาน function_name([arguments]) : ฟังก์ชันและค่าที่ส่งให้ฟังก์ชัน ถ้า include ไฟล์เดียวกันซ้ำจะมีข้อความผิดพลาด ถ้า include_once ไฟล์เดียวกันซ้ำไม่มีข้อความผิดพลาด เหมือนการตัดบรรทัดที่ซ้ำออกไป include_once ‘file_name’; function_name([arguments]);
22 ตัวอย่าง 32_FuncManyPape01 TestFile1.php <?php function Test($a) { $b=$a=5; return $b; } ?>
23 ตัวอย่าง 32_FuncManyPape01 CallFuncFile1.php <?php include 'TestFile1.php'; $c=1; $c=Test($c); ?>
24 ตัวอย่าง 32_FuncManyPape02 TestFile2.php <?phpfunction Test_1($m) {$p=$m+5; return $p; } function Test_2($x) {return ($x+10);} echo "End of TestFile2.php "; ?> มี array
25 ตัวอย่าง 32_FuncManyPape02 CallFuncFile2.php <?php include 'TestFile2.php';//include_once 'TestFile2.php'; ?>
26 ตัวอย่าง 32_FuncManyPape02 CallFuncFile2.php <?php include_once 'TestFile2.php';//include_once 'TestFile2.php'; include_once 'TestFile2.php'; ?>
27 ตัวอย่าง 32_FuncManyPape02 CallFuncFile2.php <?php include 'TestFile2.php';//include_once 'TestFile2.php'; include_once 'TestFile2.php'; $a=1; echo Test_1($a); ?>