Functions & Sub Program ฟังก์ชันและโปรแกรมย่อย
Content 1. Definition and Usage 2. Syntax 3. PHP Function Arguments 4. Passing Parameter 5. PHP Variables Scope 6. PHP String Functions
Definition and Usage What is Function ? Function คือโปรแกรมย่อย (Sub Program) ที่มีการทำงานบางอย่าง บางครั้งอาจมีการส่งค่า (Passing) บางอย่างไปหรือไม่มีก็ได้ Function อาจมีการทำงานเสร็จในตัวเอง หรืออาจจะมีการส่งค่ากลับมาก็ได้ Function เป็นการกระโดดจากบรรทัดที่ทำงานอยู่ไปหาโปรแกรมย่อยที่เราเรียกใช้งาน จากนั้นจะกระโดดกลับมาที่บรรทัดถัดไปเมื่อมีการทำงานที่โปรแกรมย่อยเสร็จ แบ่งได้เป็น 2 ประเภทคือ Function เป็น Function ที่มีมากับ Compiler จะถูกบรรจุไว้ใน library file Function ที่เขียนขึ้นเอง
Definition and Usage What is Function ? A function is a block of statements that can be used repeatedly in a program. A function will not execute immediately when a page loads. A function will be executed by a call to the function.
Create a User Defined Function in PHP Syntax function functionName() { code to be executed; //Statements } Example <?php function writeMsg() { echo "Hello world!"; } writeMsg(); // call the function ?>
PHP Function Arguments Example <?php function familyName($fname) { echo "$fname.<br>"; } familyName("Jani"); familyName("Hege"); familyName("Stale"); familyName("Kai Jim"); familyName("Borge"); ?>
PHP Function Arguments Example <?php function familyName($fname,$year) // two args. { echo "$fname Born in $year <br>"; } familyName("Hege","1975"); familyName("Stale","1978"); familyName("Kai Jim","1983"); ?>
PHP Default Argument Value Example <?php function setHeight($minheight=50) { echo "The height is : $minheight <br>"; } setHeight(350); setHeight(); // will use the default value of 50 setHeight(135); setHeight(80); ?>
PHP Functions - Returning values Example <?php 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); ?>
Passing Parameter Default parameter By value By reference
Passing Parameter Passing by default parameter <?php function setHeight($minheight=50) { echo "The height is : $minheight <br>"; } setHeight(350); setHeight(); // will use the default value of 50 setHeight(135); setHeight(80); ?>
Passing Parameter Passing by value <?php 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); ?>
Passing Parameter Passing by reference <?php function swap(&$x,&$y) // จะใช้เครื่องหมาย & { $temp=$x; $x=$y; $y=temp; } $x=10;$y=20; echo “x=$x” . “,y=$y <br>”; // x=10,y=20 swap($x,$y); echo “x=$x” . “,y=$y <br>”; // x=20,y=10 ?>
PHP Variables Scope In PHP, variables can be declared anywhere in the script. The scope of a variable is the part of the script where the variable can be referenced/used. PHP has three different variable scopes: local global static
PHP Variables Scope Local and Global Scope <?php $x=5; // global scope function myTest() { $y=10; // local scope echo "<p>Test variables inside the function:<p>"; echo "Variable x is: $x"; echo "<br>"; echo "Variable y is: $y"; } myTest(); echo "<p>Test variables outside the function:<p>"; echo "Variable x is: $x"; echo "<br>"; echo "Variable y is: $y"; ?>
PHP Variables Scope $x =20; function f1(){ echo $x; // error! เพราะอ้างถึงตัวแปร x ซึ่งถูกสร้างไว้ภายนอกฟังก์ชัน $y =30; } echo $y; // error! เพราะอ้างถึงตัวแปร y ซึ่งถูกสร้างไว้ภายในฟังก์ชัน
PHP Variables Scope $x =5; $y =10; function f1(){ global $x,$y; $y=$x+$y; } f1(); echo $y; //outputs 15;
PHP Variables Scope <?php $x=5; $y=10; function myTest() { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } myTest(); echo $y; // outputs 15 ?>
PHP Variables Scope Statics <?php function myTest() { static $x=0; echo $x; $x++; } myTest(); myTest(); myTest(); ?>
PHP String Functions strtoupper(ข้อความ) strtolower(ข้อความ) ชื่อฟังก์ชัน ความหมาย strtoupper(ข้อความ) strtolower(ข้อความ) ucfirst(ข้อความ) ucwords(ข้อความ) แปลงประโยคให้เป็นตัวพิมพ์ใหญ่ แปลงประโยคให้เป็นตัวพิมพ์เล็ก แปลงตัวอักษรตัวแรกของประโยคให้เป็น ตัวพิมพ์ใหญ่ แปลงตัวอักษรตัวแรกของคำให้เป็นตัวพิมพ์ ใหญ่
PHP String Functions strcmp(ข้อความ1,ข้อความ2) strlen(ข้อความ) ชื่อฟังก์ชัน ความหมาย strcmp(ข้อความ1,ข้อความ2) strlen(ข้อความ) strpos(ข้อความ,อักษร) stripos(ข้อความ,อักษร) strrpos(ข้อความ,อักษร) strripos(ข้อความ,อักษร) str_repeat(ข้อความ,จำนวน) เปรียบเทียบข้อความทั้งสองว่าเหมือนกันหรือไม่ นับจำนวนตัวอักษรในข้อความ หาตำแหน่งอักษรในข้อความ โดยถือว่าอักษรใหญ่เล็กต่างกัน ตำแหน่งแรกสุดนับเป็น 0 ถ้าไม่พบจะได้ผลลัพธ์เป็น False เหมือนกับ strpos แต่อักษรใหญ่เล็กถือว่าเหมือนกัน หาว่าตำแหน่งสุดท้ายของอักษรนั้นอยู่ตรงไหน โดยถือว่าอักษรใหญ่เล็กต่างกัน เหมือนกับ strrpos แต่อักษรใหญ่เล็กถือว่าเหมือนกัน สำหรับสร้างข้อความซ้ำกันหลาย ๆ ครั้งเท่ากับจำนวนครั้งที่ระบุ
PHP String Functions strstr(ข้อความ,อักษร) stristr(ข้อความ,อักษร) ชื่อฟังก์ชัน ความหมาย strstr(ข้อความ,อักษร) stristr(ข้อความ,อักษร) strrchr(ข้อความ,อักษร) substr(ข้อความ,start,length) หาอักษร โดยถือว่าอักษรใหญ่เล็กต่างกัน เมื่อพบแล้วเริ่มตัดเอาข้อความตั้งแต่อักษรนั้นไปจนจบ เหมือนกับ strstr แต่อักษรใหญ่เล็กถือว่าเหมือนกัน หาอักษรเริ่มจากท้ายเข้ามา โดยถือว่าอักษรใหญ่เล็กต่างกัน เมื่อพบแล้วตัดเอาข้อความตั้งแต่ตัวอักษรนั้นไปจนจบข้อความ ตัดข้อความโดยเอาตั้งแต่ตำแหน่ง start (อักษรตัวแรกถือเป็นตำแหน่งที่ 0) และนับไปตามจำนวนที่ต้องการ (length)
แบบฝึกหัด จงเขียนฟังก์ชันต่อไปนี้ 1) โปรแกรมการคำนวณหาค่า Factorial เช่น 4! = 4*3*2*1; โดยมีเงื่อนไขต้อไปนี้ ถ้า 0! ; หรือ 1! มีค่าเท่ากับ 1 นอกนั้นมีค่าเท่ากับ n! = n(n-1)(n-2)(n-3) … (1) 2) โปรแกรมแสดงค่าน้ำประปาที่ต้องจ่ายโดยจะต้องกำหนดหน่วยที่ใช้เอง และ มีเงื่อนไขต่อไปนี้ ถ้าใช้น้ำไม่เกิน 10 หน่วย ไม่ต้องเสียค่าใช้จ่าย ถ้าใช้น้ำเกิน 10 หน่วย แต่ไม่ถึง 20 หน่วย ให้คิดอัตรา หน่วยละ 3 บาท ถ้าใช้น้ำเกิน 20 หน่วย แต่ไม่ถึง 40 หน่วย ให้คิดอัตราหน่วยที่ 21 หน่วยละ 5 บาท ถ้ามากกว่า 40 หน่วยให้คิดให้คิดอัตราหน่วยที่ 41 หน่วยละ 7 บาท
Q & A