Page 1

ใบความรูท้ ี่ 7 การสร้างฟังก์ชั่นของ PHP การประกาศฟังก์ชัน ก่อนที่เราจะใช้งานฟังก์ชันใดๆเราจะต้องสร้างฟังชันขึ้นก่อน หลังจากนั้นค่อยเรียกชื่อฟังก์ชัน นั้นเมื่อต้องการใช้งานซึ่งการสร้างฟังก์ชันนี้เราอาจเรียกว่าเป็นการประกาศฟังก์ชันโดยรูปแบบของ การประกาศฟังก์ชันในภาษาPHPเป็นดังนี้

รายละเอียดของการประกาศฟังก์ชัน เป็นดังนี้ ยกตัวอย่างการประกาศฟังก์ชันชื่อว่า asterisk โดยเป็นฟังก์ชันที่ใช้พิมพ์เครื่องดอกจันจานวน 30 ครั้ง รายละเอียดของฟังก์ชันเป็นดังนี้


การใช้งานฟังก์ชันโดยไม่มีการส่งผ่านค่า หลังจากประกาศฟังก์ชันแล้วในการใช้งานฟังก์ชันก็เพียงเรียกชื่อฟังก์ชันนั้นแต่ให้สังเกตว่า ฟังก์ชันที่จะเรียกใช้งานนั้นมีการผ่านค่าหรือไม่ ในกรณีที่ไม่มีการส่งผ่านค่าก็เพียงเรียกชื่อฟังก์ชันตาม ด้วยเครื่องหมายวงเล็บเปิด – ปิดเท่านั้น ตัวอย่างต่อไปจะเรียกใช้ฟังก์ชัน asterisk ที่ได้ประกาศไว้ใน หัวข้อที่ผ่านมา ดังนี้ function_nopass1.php จากโปรแกรมและผลลัพธ์นี้มีการเรียกใช้ฟังก์ชัน asterisk2 ครั้ง คือเรียกใช้งานในตอนเริ่มต้น และตอนท้ายของผลลัพธ์ โดยที่เราไม่ต้องเสียเวลาเขียนโปรแกรมเพื่อสั่งให้พิมพ์เครื่องหมายดอกจัน จานวน 30 ครั้งใหม่ เราเพียงเรียกชื่อฟังก์ชันให้ทางานเท่านั้น

การใช้งานฟังก์ชันโดยมีการส่งผ่านค่า เพื่อให้การใช้งานฟังก์ชันมีความยืดหยุ่นมากขึ้น ในบางครั้งเราอาจจะสร้างฟังก์ชันในลักษณะ ของการส่งผ่านค่า จากตัวอย่างในโปรแกรมหัวข้อที่ผ่านมาถ้าเราต้องการใช้ฟังก์ชัน asterisk สามารถ พิมพ์เครื่องหมายดอกจันจานวนเท่าไรก็ได้ขึ้นอยู่ที่ผู้ใช้งานต้องการ เราสามารถสรุปฟังก์ชัน และ โปรแกรมรียกใช้งานได้ดังนี้


function_pass1.php

จากโปรแกรมและผลลัพธ์ข้างต้นนี้ได้ทาการปรับปรุงฟังก์ชัน asterisk โดยเขียนฟังก์ชันใน ลักษณะที่มีการส่งผ่านค่า ให้กับฟังก์ชันซึ่งมีอาร์กิวเมนต์ $no ทาหน้าที่เป็นตัวรับค่าจานวนที่ต้องการ ให้พิมพ์เครื่องหมายดอกจัน ภายในฟังก์ชันก็นาอาร์กิวเมนต์ $no นี้ไปเข้าเงื่อนไขเพื่อทาซ้าของคาสั่ง For กาหนดให้ตัวแปร $sign เป็นตัวแปรที่ใช้ต่อสตริงเครื่องหมายดอกจันเท่ากับจานวนค่าของ อาร์กิวเมนต์ ในส่วนของการเรียกใช้งานฟังก์ชันก็มีการเรียกใช้งาน 2 ครั้ง ครั้งแรกส่งผ่านค่าตัวเลข 30 ดังนั้นผลลัพธ์ที่ได้ก็จะทาการพิมพ์เครื่องหมายดอกจันจานวน 30 ครั้ง ครั้งที่ 2 ส่งผ่านตัวเลข 20 ดังนั้นผลลัพธ์ที่ได้ก็จะทาการพิมพ์เครื่องหมายดอกจัน 20 ครั้ง ตัวอย่างถัดไปจะเป็นการแสดงฟังก์ชันที่มีส่งผ่านค่า 2 จานวน โดยค่าแรกเป็นสตริง และค่าที่ 2 เป็นตัวเลข รายละเอียดของโปรแกรม เป็นดังนี้


ในการเรียกใช้ฟังก์ชันของโปรแกรมนี้ มีการเรียกใช้งาน 2 ครั้ง ครั้งแรกส่งผ่านข้อความ "Hello How are you ? ",และตัวเลข 1 ซึ่งภายในฟังก์ชันก็ทาการพิมพ์ข้อความนี้ และนาตัวเลขที่ ผ่านค่าเข้ามาไปกาหนดขนาดตัวหนังสือ จากผลลัพธ์จะเห็นว่าข้อความ " Hello How are you ? ", มีขนาดเท่ากับ 1 ซึ่งเป็นขนาดทีใหญ่ที่สุด ส่วนการเรียกใช้ฟังก์ชันครั้งที่ 2 มีการส่งผ่านข้อความ " Good Bye ",และตัวเลข 4 ดังนั้นผลลัพธ์ที่ได้ก็คือการพิมพ์ข้อความ " Good Bye " มีขนาดเท่ากับ 4 ซึ่งมีขนาดเล็กกว่าข้อความแรก 7.4 การคืนค่ากลับของฟังก์ชัน ในการใช้งานฟังก์ชันนอกจากเราจะสามารถส่งผ่านค่าใดๆ ไปประมวลผลภายในฟังก์ชันได้ แล้ว เรายังสามารถคืนค่าใดๆ กลับมายังส่วนที่เรียกใช้งานฟังก์ชันได้ โดยใช้คาสั่ง return ตามด้วย ค่าที่ต้องการคืนกลับและค่าที่คืนกลับจะถูกแทนที่ในตาแหน่งที่เรียกใช้ฟังก์ชัน พิจารณาโปรแกรม และผลลัพธ์ต่อไปนี้ return.php


ประเภทของตัวแปร และขอบเขตของตัวแปร ในการใช้งานฟังก์ชันเราจะเห็นว่ามีการใช้งานตัวแปรภายในฟังก์ชัน และในบางครั้งชื่อตัวแปร ที่ใช้ภายในฟังก์ชันบังเอิญมีชื่อเดียวกับชื่อตัวแปรที่ใช้อยู่ภายนอกฟังก์ชัน ในกรณีนี้ชื่อตัวแปรนี้เราว่า เป็นตัวแปรเดียวกันหรือไม่ ในการตอบคาถามนี้เราจะต้องทาความรู้จักประเภทของตัวแปรซึ่งแบ่ง ออกเป็น 2 ประเภท คือตัวแปรประเภท Local และ Global ความหมายของประเภทตัวแปรทั้ง 2 คือ • ตัวแปร Local คือ ตัวแปรที่มีขอบเขตการใช้งานภายในบริเวณหนึ่งเท่านั้น เช่นมีขอบเขต การใช้งานเฉพาะภายในฟังก์ชันเท่านั้น ถ้ามีตัวแปรที่ใช้งานภายในฟังก์ชัน และใช้งานภายนอกเป็นตัว แปรเดียวกัน เราจะถือว่าตัวแปร 2 ตัว นี้เป็นตัวแปรคนละตัวกัน พิจารณาโปรแกรมต่อไปนี้ Scope1. php

จากตัวอย่างตัวแปร $a ในฟังก์ชันจะไม่ใช่ตัวเดียวกับตัวแปร $a นอกฟังก์ชัน และขอบเขตของตัว แปร $a ในฟังก์ชันจะใช้ถึงแค่จบฟังก์ชันเท่านั้น • ตัวแปร Global คือ ตัวแปรที่มีขอบเขตใช้งานทั่วโปรแกรม ไม่ว่าจะใช้ตัวแปรประเภทนี้ บริเวณใดก็ตามทุกส่วนของโปรแกรมจะรู้จักโปรแกรมตัวนี้ ในการประกาศใช้ตัวแปรใดเป็นประเภท global เราจะใช้คาสั่ง Global วางไว้หน้าชื่อตัวแปรที่ต้องการ พิจารณาตัวอย่างโปรแกรมต่อไปนี

ประเภทของการส่งผ่านค่า ในการส่งผ่านค่าใดๆไปยังฟังก์ชัน หลังจากภายในฟังก์ชันระมวลผลสาเร็จ และมีการเปลี่ยน ค่าที่ผ่านเข้ามาเกิดขึ้น ถามว่าพอกลับไปยังส่วนที่เรียกใช้งานฟังก์ชันแล้วค่าของตัวแปรที่ส่งผ่านค่าไป


ยังฟังก์ชันจะถูกเปลี่ยนไปตามด้วยหรือไม่ คาตอบก็คือขึ้นอยู่ที่ประเภทของการส่งผ่านค่า โดยการ ส่งผ่านค่ามี 2 ประเภท ดังนี้ • การส่งผ่านด้วยค่าของตัวแปร (Pass by Value) การเปลี่ยนแปลงใดๆ ของค่า อาร์กิวเมนต์จะไม่มีผลต่อค่าตัวแปรที่ส่งผ่านค่าไปยังฟังก์ชัน พิจารณาโปรแกรมต่อไปนี้


สรุป ก่อนที่เราจะใช้งานฟังก์ชันใดๆ เราจะต้องสร้างฟังก์ชันขึ้นก่อน หลังจากนั้นค่อยเรียกชื่อ ฟังก์ชันนั้นเมื่อต้องการใช้งาน ซึ่งการสร้างฟังก์ชันนี้เราอาจจะเรียกว่าเป็นการประกาศฟังก์ชัน และ หลังจากประกาศฟังก์ชันแล้ว ในการใช้ฟังก์ชันก็เพียงเรียกชื่อฟังก์ชันนั้น โดยสามารถแบ่งประเภท ของการเรียกใช้ฟังก์ชันได้เป็น แบบไม่มีการส่งผ่านค่า และแบบที่มีการส่งผ่านค่า และนอกจากนั้น หลังจากที่ทาการประมวลผลภายในฟังก์ชันแล้ว ยังแบ่งฟังก์ชันเป็นแบบที่ไม่มีการคืนค่ากลับ และมี การคืนค่ากลับ ประเภทของตัวแปรแบ่งออกเป็น 2 ประเภท คือ Local และ Global โดยที่มีตัวแปร Local คือตัวแปรที่มีขอบเขตการใช้งานภายในบริเวณใดบริเวณหนึ่ง ส่วน Global คือตัวแปรที่มีขอบเขตใช้ งานทั่วโปรแกรม ไม่ว่าจะใช้ตัวแปรประเภทนี้บริเวณใดก็ตามทุกส่วนของโปรแกรมจะรู้จักโปรแกรมตัว นี้ ประเภทของการส่งผ่านค่าแบ่งออกเป็น 2 ประเภท คือ การส่งผ่านด้วยค่าของตัวแปร (Pass by Value) การเปลี่ยนแปลงใดๆ ของค่าอาร์กิวเมนต์จะไม่มีผลต่อค่าของตัวแปรที่ส่งผ่านค่าไปยัง ฟังก์ชันและการส่งผ่านด้วยค่าของตัวแปร (Pass by Reference) การเปลี่ยนแปลงใดๆของค่า อาร์กิวเมนต์ จะมีผลต่อค่าของตัวแปรที่สางผ่านค่าไปยังฟังก์ชัน

course new  

course new

Read more
Read more
Similar to
Popular now
Just for you