More Related Content
PPT
PDF
PDF
PDF
PPT
PHP Tutorial (introduction) PPTX
Reference :: Java :: เต็ม PPT
การพัฒนาเอกสารออนไลน์ขั้นสูง Lect 06 PPT
What's hot
PDF
PDF
โปรแกรมย่อยและฟังก์ชันมาตรฐาน PPTX
การเขียนโปรแกรมเพื่องานอาชีพ 6. PPTX
โปรแกรมย่อยและฟังก์ชัน มาตรฐาน 6 PPTX
DOCX
PPTX
เริ่มต้นการเขียนโปรแกรมหุ่นยนต์ PDF
PDF
คำสั่งและเงื่อนไข [Web-Programming] PPT
PPT
PDF
การเขียนฟังก์ชั่นในภาษา C PPTX
PDF
DOC
การเขียนคำสั่งควบคุมขั้นพื้นฐาน PPT
PDF
PDF
โปรแกรมย่อยและฟังก์ชันมาตรฐาน PDF
นางสาวภูริชา พลนิกร-59170111-กลุ่ม1-งานเดี่ยว PPT
ตัวแปรชนิดพอยเตอร์ (Pointer) Similar to power point.
PPTX
โปรแกรมย่อยและฟังก์ชันมาตรฐาน... PPTX
โปรแกรมย่อยและฟังก์ชันมาตรฐาน... PPTX
โปรแกรมย่อยและฟังก์ชันมาตรฐาน... PDF
ค่าตัวแปรและตัวดำเนินการ [Web-Programming] PDF
PDF
PDF
PPT
ไฟล์ Presentation ประกอบรายงาน PHP - Know2Pro.co.cc PDF
PPT
PPTX
PDF
อยากเขียนโปรแกรมสักตัว เล่ม 1 PDF
PPT
PPTX
กลุ่มที่ 6 โปรแกรมย่อยและฟังก์ชันมาตรฐาน PDF
PDF
PPTX
กลุ่มที่ 6 โปรแกรมย่อยและฟังก์ชันมาตรฐาน PPTX
PDF
power point.
- 1.
- 2.
ความหมาย ฟังก์ชั่น (Function ) หมายถึง กลุ่มของคำสั่งที่ถูกนำมารวบรวมไว้ด้วยกัน เพื่อให้สามารถเรียกใช้ได้อย่างสะดวกและเป็นระบบ ฟังก์ชั่นใน PHP มี 2 แบบคือ การสร้างฟังก์ชั่นขึ้นมาใช้งานเอง เรียกว่า user-defined functions ฟังก์ชั่นที่มีให้เรียกใช้อยู่แล้ว เรียกว่า built-in functions เช่น ฟังก์ชั่น chr() , substr() - 3.
การประกาศฟังก์ชั่น มีรูปแบบดังนี้ ชื่อฟังก์ชั่น : เป็นชื่อที่ตั้งขึ้นสำหรับเรียกใช้ฟังก์ชั่นนั้น อาร์กิวเมนต์ 1, อาร์กิวเมนต์ 2,… เป็นตัวแปรชนิดต่างๆโดยระบุไว้ระหว่างวงเล็บเปิดกับวงเล็บปิด ซึ่งจะใช้อาร์กิวเมนต์ในการรับข้อมูลเข้ามาประมวลผล และส่งข้อมูลกลับออกไป ( สำหรับอาร์กิวเมนต์ที่ถูกกำหนดให้ส่งผ่านแบบ by reference ) คำสั่ง : เป็นส่วนการทำงานภายในฟังก์ชั่น Function ชื่อฟังก์ชั่น ([ อาร์กิวเมนต์ 1, อาร์กิวเมนต์ 2,…]){ คำสั่ง ; } - 4.
ตัวอย่างการสร้างฟังก์ชั่น ( 1) ตัวอย่างฟังก์ชั่นที่รับอาร์กิวเมนต์ <? function carea ( $dia,$mode ) { if ( $mode == 0 ) { $area =( 22/28 )* $dia * $dia; // 22/7 * 1/4 return $area; }elseif ( $mode == 1 ) { $area = $dia * $dia; return $area; } } $diameter = 7; echo " วงกลมเส้นผ่านศูนย์กลางยาว $diameter หน่วย มีพื้นที่ =". carea ( $diameter,0 )." ตารางหน่วย <br> " ; echo " สี่เหลี่ยมจตุรัสยาวด้านละ $diameter หน่วย มีพื้นที่ =". carea ( $diameter,1 )." ตารางหน่วย <br> " ; ?> - 5.
ตัวอย่างการสร้างฟังก์ชั่น (2) ตัวอย่างฟังก์ชั่นที่ไม่รับอาร์กิวเมนต์<? function growname () { $myname = " nana " ; $newname = "" ; for ( $i = 0;$i<strlen ( $myname ) ;$i ++) { $newname .= substr ( $myname,$i,1 ) ; echo $newname ." <br> " ; } } growname () ; ?> จากตัวอย่างนี้ ถ้าลองเปลี่ยนเป็นฟังก์ชั่นที่รับอาร์กิวเมนต์เข้ามาหนึ่งตัวเพื่อแทนชื่อที่รับเข้ามาจะได้รูปแบบฟังก์ชั่นเป็นอย่างไร - 6.
- 7.
- 8.
- 9.
การส่งผ่านด้วยค่า (Passing by Values ) เป็นวิธีการส่งผ่านค่าที่มักใช้โดยทั่วไป คือ เมื่อใส่ตัวแปรเป็นอาร์กิวเมนต์ ( argument ) ให้กับฟังก์ชั่นแล้ว ถึงแม้ในฟังก์ชั่นจะมีการเปลี่ยนค่าของตัวแปรพารามิเตอร์ที่รับค่ามาจากอาร์กิวเมนต์นั้น ค่าของตัวแปรอาร์กิวเมนต์ที่อยู่ภายนอกฟังก์ชั่นก็ไม่เปลี่ยนแปลง - 10.
ตัวอย่างการส่งผ่านค่าของตัวแปร 1 <?$var = 150; $str = " A " ; function sendVal ( $newVar,$newStr ) { $newVar += 100; ++ $newStr; echo " ค่าของ \$newVar คือ ". $newVar ." <br> " ; echo " ค่าของ \$newStr คือ ". $newStr ." <br> " ; } ?> ค่าของฟังก์ชั่น $var ( ก่อนเรียกฟังก์ชั่น ) คือ <?echo $var;?><br> ค่าของฟังก์ชั่น $str ( ก่อนเรียกฟังก์ชั่น ) คือ <?echo $str;?><br> <?sendVal ( $var,$str ) ;?> ค่าของฟังก์ชั่น $var ( หลังเรียกฟังก์ชั่น ) คือ <?echo $var;?><br> ค่าของฟังก์ชั่น $str ( หลังเรียกฟังก์ชั่น ) คือ <?echo $str;?><br> - 11.
ตัวอย่างการส่งผ่านค่าของตัวแปร 2 <?function mat ( $p1,$p2 ) { $p1 = $p1+$p2; return $p1 * $p2; } $x = 15;$y = 4; print " Before use Function<br> " ; print " \$x = $x<br> " ; print " \$y = $y<br> " ; $z = mat ( $x,$y ) ; print " After use Function<br> " ; print " \$x = $x<br> " ; print " \$y = $y<br> " ; print " \$z = $z<br> " ; ?> ค่า z จะมาจากการที่เอาค่า x คูณกับค่า y โดยที่ ค่า x ที่เอามาคูณจะเป็นค่า x บวกค่า y ไปแล้ว เพราะฉะนั้นค่าที่ส่งกลับไปก็คือ (15+4)*4 76 - 12.
การส่งผ่านด้วยการอ้างอิง (Passing by Reference ) เมื่อใส่สัญลักษณ์ & (ampersand) เข้าไปไว้หน้าอาร์กิวเมนต์ในขณะสร้างฟังก์ชั่น จะมีผลให้เป็นการส่งผ่านด้วยการอ้างอิง โดยหากในฟังก์ชั่นมีการเปลี่ยนค่าตัวแปรอาร์กิวเมนต์นั้น ค่าของตัวแปรภายนอกฟังก์ชั่นจะถูกเปลี่ยนตามด้วย - 13.
ตัวอย่างการส่งผ่านด้วยการอ้างอิง 1 <?$var = 150; $str = " A " ; function sendVal ( &$newVar,&$newStr ) { $newVar += 100; ++ $newStr; echo " ค่าของ \$newVar คือ ". $newVar ." <br> " ; echo " ค่าของ \$newStr คือ ". $newStr ." <br> " ; } ?> ค่าของฟังก์ชั่น $var ( ก่อนเรียกฟังก์ชั่น ) คือ <?echo $var;?><br> ค่าของฟังก์ชั่น $str ( ก่อนเรียกฟังก์ชั่น ) คือ <?echo $str;?><br> <?sendVal ( $var,$str ) ;?> ค่าของฟังก์ชั่น $var ( หลังเรียกฟังก์ชั่น ) คือ <?echo $var;?><br> ค่าของฟังก์ชั่น $str ( หลังเรียกฟังก์ชั่น ) คือ <?echo $str;?><br> การใส่ & ในอาร์กิวเมนต์ ของฟังก์ชั่นเพื่อให้เป็นการส่ง ผ่านแบบอ้างอิง ( passing by reference ) - 14.
ตัวอย่างการส่งผ่านด้วยการอ้างอิง 2 <?function mat ( &$p1,$p2 ) { $p1 = $p1+$p2; return $p1 * $p2; } $x = 15;$y = 4; print " Before use Function<br> " ; print " \$x = $x<br> " ; print " \$y = $y<br> " ; $z = mat ( $x,$y ) ; print " After use Function<br> " ; print " \$x = $x<br> " ; print " \$y = $y<br> " ; print " \$z = $z<br> " ; ?> - 15.
การกำหนดค่าเริ่มต้น ( default) ให้กับอาร์กิวเมนต์ บางกรณีที่ต้องการสร้างฟังก์ชั่นโดยมรอาร์กิวเมนต์เป็นออปชั่น คือในขณะเรียกใช้ฟังก์ชั่นจะใส่อาร์กิวเมนต์หรือไม่ใส่ก็ได้ จะต้องมีการกำหนดค่าสำหรับอาร์กิวเมนต์ไว้ล่วงหน้า - 16.
ตัวอย่างการกำหนดค่า default ให้อาร์กิวเมนต์ จากตัวอย่างฟังก์ชั่น 2 ถ้าเปลี่ยนมาเป็นการกำหนดค่า default ให้กับอาร์กิวเมนต์ จะเป็นดังนี้ <? function growname ( $myname = “Test” ) { $newname = "" ; for ( $i = 0;$i<strlen ( $myname ) ;$i ++) { $newname .= substr ( $myname,$i,1 ) ; echo $newname ." <br> " ; } } growname ( “nana” ) ; growname () ; ?> - 17.
การคืนค่ามากกว่า 1 ค่า เมื่อต้องการใช้ฟังก์ชั่นคืนค่าให้มากกว่า 1 ค่า สามารถอาศัยคุณสมบัติฟังก์ชั่นใน PHP สามารถคืนค่าเป็นอาร์เรย์ได้ โดยการเขียนคำสั่งการคืนค่าในลักษณะดังนี้ return array($var1,$var2) - 18.
ตัวอย่างการคืนค่ามากกว่า 1 ค่า <? function calculator($x,$y){ $a = $x+$y; $b = $x-$y; $c = $x*$y; $myarr[0] = $a; $myarr[1] = $b; $myarr[2] = $c; return $myarr; } $x=20; $y=12; $value = calculator($x,$y); print "$x + $y = ".$value[0]."<br>"; print "$x - $y = ".$value[1]."<br>"; print "$x * $y = ".$value[2]."<br>"; ?> - 19.
ขอบเขต scope ของตัวแปรและค่าคงที่ ตัวแปรที่ประกาศไว้ในฟังก์ชั่นใด จะเป็นที่รู้จักและเรียกใช้ฟังก์ชั่นนั้น ถึงแม้ว่าจะมีการประกาศตัวแปรชื่อเดียวกันไว้ในทั้งในและนอกฟังก์ชั่น ก็ถือว่าเป็นตัวแปรคนละตัวและมีตำแหน่งในหน่วยความจำคนละที่กัน <? $myName = " suthasinee " ; function testVar () { $myName = 1500.25; return $myName; } echo " ตัวแปร \$myName มีค่า $myName <br> " ; echo " ตัวแปร \$myName ในฟังก์ชั่นมีค่า ". testVar ()." <br> " ; echo " ตัวแปร \$myName หลังจากเรียกฟังก์ชั่นมีค่า $myName <br> " ; ?> - 20.
ขอบเขต scope ของตัวแปรและค่าคงที่ ( ต่อ ) จากตัวอย่าง ค่าของตัวแปร $myName ที่อยู่ภายในและภายนอกฟังก์ชั่นจะมีค่าเป็นของตัวเอง ถ้าเราต้องการอ้างถึงตัวแปร $myName ที่อยู่ภายนอกจากภายในฟังก์ชั่น ก็จะต้องประกาศตัวแปรนั้นโดยใช้คำสั่ง global มีรูปแบบดังนี้ Global var_name1, var_name2, var_name3,…; โดยการประกาศนี้จะต้องทำภายในฟังก์ชั่นดังตัวอย่าง - 21.
ตัวอย่างคำสั่ง global<? $myVar = 500; function TestVar () { global $myVar; $myVar ++ ; } echo " ค่าของ \$myVar ก่อนเรียกฟังก์ชั่น : $myVar<br> " ; TestVar () ; echo " ค่าของ \$myVar หลังจากเรียกฟังก์ชั่น : $myVar<br> " ; ?> - 22.
การสร้างตัวแปรแบบ staticโดยทั่วไปแล้วปกติตัวแปรที่เราประกาศไว้ภายในฟังก์ชั่นจะถูกทำลายไปหลังจากการทำงานของฟังก์ชั่นนั้นๆสิ้นสุดลง และจะถูกสร้างขึ้นมาใหม่ตอนที่เราเรียกใช้ฟังก์ชั่น หรือฟังก์ชั่นไม่สามารถรักษาค่าของตัวแปรเหล่านี้ให้คงสภาพอยู่ได้ในระหว่างการทำงานแต่ละครั้ง - 23.
ตัวอย่างฟังก์ชั่นที่ไม่ได้สร้างเป็น static<? function testloop () { $value = 150; $str = " A " ; echo " ค่าของ \$value คือ $value, " ; echo " ค่าของ \$str คือ $str<br> " ; $value -= 10; $str ++ ; } for ( $i = 0;$i<4;$i ++) { testloop () ; } ?> - 24.
ตัวอย่างฟังก์ชั่นที่สร้างเป็น static<? function testloop () { static $value = 150; static $str = " A " ; echo " ค่าของ \$value คือ $value, " ; echo " ค่าของ \$str คือ $str<br> " ; $value -= 10; $str ++ ; } for ( $i = 0;$i<4;$i ++) { testloop () ; } ?> - 25.
ฟังก์ชั่นที่เรียกตัวเอง (Recursive Function ) ฟังก์ชั่นใน PHP มีความสามารถในการเรียกตัวเอง ( recursion ) ได้เช่นเดียวกันกับอีกหลายภาษา โดยใน PHP4 , 5 สามารถนำสคริปต์ที่คอมไพล์ไว้แล้วกลับมาทำงานซ้ำได้ทันที จึงเร็วกว่า PHP3 - 26.
ตัวอย่างการทำ RecursiveFunction <? function xx($a){ $a = $a/2; print "\$a = $a<br>"; if(gettype($a)=="integer"){ xx($a); } } xx(1000); ?> - 27.
ทดสอบ ให้สร้างฟังก์ชั่น 2 ฟังก์ชั่นโดยที่ มีการเรียกใช้ฟังก์ชั่นที่ 2 ภายในฟังก์ชั่นที่ 1 ฟังก์ชั่นที่ 1 ให้เป็นการทำงานที่ไม่มีการรับอาร์กิวเมนต์เข้ามาในฟังก์ชั่น โดยที่เป็นการสร้างวันที่และเวลาจากค่า timestamp หลังจากนั้นให้ทำการแยกระหว่างวันที่และเวลา รูปแบบของวันที่และเวลาที่ต้องการได้ เช่น 11/06/08 2:04:48 เมื่อได้ส่วนของวันที่มาแล้วให้ทำการตรวจสอบรูปแบบของวันที่ว่าอยู่ในรูปแบบ dd/mm/yy หรือไม่ผ่านฟังก์ชั่นของ regular expression ฟังก์ชั่นที่ 2 ทำการเรียกใช้ฟังก์ชั่นที่ 1 ในส่วนต้นของฟังก์ชั่น หลังจากนั้นให้ทำการ รับอาร์กิวเมนต์เข้ามาในฟังก์ชั่น โดยตัวแปรที่ส่งเข้ามาคือค่าฐานและสูง เพื่อส่งมาคำนวณหาพื้นที่สามเหลี่ยมจากสูตร ½* ฐาน * สูง แล้วส่งค่ากลับไปแล้วก็ print ค่าที่ส่งกลับออกมา - 28.