The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by หัสนัย หม้อยา, 2022-04-27 07:19:03

PHP,MYSQL,BOOTSTAP

23bookfile

47

ตอ มาในตัวแปร $b เราบังคับใหโปรแกรมทาํ การบวกเลขกอนโดยการใสเคร่ืองหมายวงเลบ็ () ทาํ ใหการทาํ งานเปนการบวกเลขกอ น
แลวนําผลลัพธไ ปคูณกบั 5 ซ่งึ จะไดผ ลลพั ธเปน 25
a = 17
b = 25
น่ีเปนผลลัพธของโปรแกรม

การกาํ หนดเง่ือนใขในภาษา PHP (if..else, switch..case)

ในการเขียนโปรแกรม อาจจะมเี งอื่ นไขหรือขอ กําหนดบางอยา งท่ีคณุ ตอ งการใหโปรแกรมทํางานแตกตา งกันไป การ
ตดั สินใจจึงเปน เร่ืองธรรมดาทเ่ี กิดขึ้นท้งั ในการเขียนโปรแกรมและในชีวติ ประจําวนั ยกตวั อยา งเชน ถา คณุ มเี งนิ มากกวา 100 เหรยี ญ
คุณจะซ้ือวิดโี อเกม แตถา คณุ ไมเ งินไมพ อคุณจะซอื้ หนงั สือแทน
เราจะมาเร่ิมกบั คําสั่งทพ่ี ้นื ฐานทสี่ ดุ สาํ หรบั คําสงั่ เลอื กเง่อื นไข คําสง่ั If

คําส่ัง If

คาํ ส่งั If เปนคําสง่ั ควบคมุ ทพ่ี น้ื ฐานที่สุดในการเขยี นโปรแกรม มนั ใชส าํ หรบั ควบคมุ การทาํ งานในกรณที ี่เงอ่ื นไขเปน จรงิ น่ี
เปน รูปแบบการใชงานของคําสั่ง If ในภาษา PHP
if (expression)

statements
การตรวจสอบเงือ่ นไขของคําส่ัง If น้ัน เกดิ จากการประเมนิ expression ถา หากเปน จริงโปรแกรมจะทํางานในบล็อคของคําส่งั If ถา
หากไมเปน จริงโปรแกรมจะขามการทาํ งานไป มาดตู ัวอยางการใชงาน
<?php
$number = 5;
if ($number == 5) {

echo "Number is equal 5.";
}
?>
ในตัวอยาง เรามีตวั แปร $number ในการเก็บคา ของตัวเลข เนือ่ งจาก Expression เปนจริง นน่ั คอื ในตัวแปรมีคาเทากับ 5
โปรแกรมจึงทาํ งานในบล็อคของคําสง่ั If และแสดงขอความ "Number is equal 5."
Number is equal 5.
นเี่ ปนผลลัพธของโปรแกรม
มาดูตวั อยางเพม่ิ เตมิ สาํ หรบั การใชค าํ สัง่ If กับเงือ่ นไขทซี่ บั ซอ นขึน้
<?php
$username = "sam43";
$password = "1234";
if ($username == "sam43" && $password == "1234") {

echo "Login succeeded.";
}
?>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

48

ในตวั อยา ง เปนการตรวจสอบการเขา สูร ะบบของเวบ็ ไซต เราไดส รา ง Expression ที่ซับซอนข้นึ โดยมตี วั แปร $username และ
$password เพอ่ื ใหในบล็อคคาํ สงั่ ทํางานช่ือผใู ชตองเปน "sam43" และรหสั ผานตองเปน "1234" และเนื่องจากคาในตัวแปรทําให
Expression เปน จรงิ ทาํ ใหโ ปรแกรมแสดงขอ ความวา "Login succeeded."
คุณอาจจะลองเปลยี่ นคา ในตัวแปรเปนคาอนื่ จะพบวาในบลอ็ คคาํ สง่ั If ไมท าํ งานเพราะวาเงอื่ นไขทีใ่ หไ มเ ปน จรงิ

คําสง่ั If Else

คําสั่ง If Else ใชสาํ หรบั ตรวจสอบเงอื่ นไขเชน เดียวกับคําส่ัง If แตในการทาํ งานจะมีการเพิม่ บลอ็ คของคาํ สง่ั else เขามา
ถาหากเงอ่ื นไขในคาํ ส่ัง If ไมเปนจริง มาดตู วั อยางการใชคาํ สง่ั If Else ในภาษา PHP
<?php
$money = 80;
if ($money >= 100) {

echo "Buy a video game.";
} else {

echo "Buy a book.";
}

?>
ในตัวอยางเปนการใชง านคาํ ส่ัง If Else กับสถาณการณท เ่ี ราไดพ ูดถงึ กอ นหนา นี้ เรามตี ัวแปร $money เกบ็ คาของจํานวนเงิน ถามี
เงินมากกวาหรือเทากับ 100 เหรยี ญเราจะซอ้ื วดิ โี อเกม แตถา ไมใ ชจ ะซ้อื หนงั สอื แทน และเนือ่ งจากเราไดกาํ หนดคา ในตัวแปรเพยี ง
80 โปรแกรมจึงทาํ งานในบลอ็ คของคาํ สัง่ Else แทน
Buy a book.
น่เี ปนผลลพั ธข องโปรแกรมเมื่อมีเงนิ ไมเ พยี งพอ คุณลองเปล่ยี นคาในตวั แปรใหมากกวา 100 และดผู ลลัพธข องมนั ใหมอีกครงั้

คาํ ส่งั If Else-If

ในคําส่ัง If-Else เปน คําสั่งในการสรา งเงอื่ นไขแบบสองทางเลือกหรือจริงและไมจ ริงเทา นน้ั ในภาษา PHP คุณสามารถ
สรางเงอ่ื นไขแบบหลายทางเลือกไดโดยการใชค าํ สง่ั Else-If สําหรบั เงื่อนไขเพม่ิ เติมทตี่ อ งการ เราจะยกตวั อยา งในการใชกบั
โปรแกรมคาํ นวณเกรด

<?php
$score = 79;
if ($score >= 80) {

echo "Your grade is A.";
} else if ($score >= 70) {

echo "Your grade is B.";
} else if ($score >= 60) {

echo "Your grade is C.";
} else if ($score >= 50) {

echo "Your grade is D.";
} else {

echo "Sorry, you got grade F.";
}

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

49

?>
ในตัวอยา ง เปนโปรแกรมคาํ นวณเกรดโดยการคาํ นวณจากคะแนนทม่ี ี เราใชคาํ สง่ั ตรวจสอบเงื่อนไข If-Else แบบหลายทางเลอื กใน
การสรา งเง่อื นไขใสแตล ะชวงคะแนนและเกรดท่ีจะไดร บั
Your grade is B.
น่ีเปน ผลลพั ธเ มือ่ รนั โปรแกรม เพราะวาคะแนน 79 อยูในชวงของเกรด B ทเ่ี ราไดกาํ หนดในเงื่อนไข คุณอาจจะลองเปลยี่ นเง่อื นไข
เปนแบบอื่นเพื่อดูผลลัพธ

คําสัง่ Switch

ในภาษา PHP ยังมคี ําสงั่ เลือกเงอื่ นไขอีกคําสงั่ หนึ่งคอื คาํ สั่ง Switch ซึ่งการทาํ งานของคาํ ส่ังนีจ้ ะคลายกับคําสง่ั If Else-If
ซึ่งเปนการเลือกแบบหลายทางเลอื ก แตในคาํ ส่งั Switch จะใชสาํ หรบั เปรยี บเทียบกับคา คงท่โี ดยตรงที่ไมใ ช Expression มาดู
ตวั อยางการใชง าน
<?php
$abb = "th";
switch ($abb) {

case "de":
$country = "Germany";
break;

case "th":
$country = "Thailand";
break;

case "hu":
$country = "Hungary";
break;

case "tr":
$country = "Turkey";
break;

default:
$country = "Unknown country";

}
echo "Your country is $country.";
?>
ในตวั อยางเปน โปรแกรมในการหาชอ่ื ประเทศจากรหสั ยอ โดยการใชค าํ สั่ง Switch เรามีตวั แปร $abb สาํ หรับเกบ็ รหสั ยอ ของ
ประเทศในโลก ในการใชงานจะสง เปน อากิวเมนตเ ขาไปยงั คาํ สง่ั Switch และโปรแกรมจะทาํ การตรวจสอบกบั เงือ่ นไขในแตละ case
เมอื่ เง่อื นไขตรงกับ Case ใดๆ โปรแกรมจะทาํ งานคาํ ส่งั หลงั จาก Case นั้นจนสิ้นสดุ บล็อคคําส่ัง Switch เราจําเปน ตอ งใชค ําสั่ง
break เพ่ือหยุดการทาํ งานของโปรแกรมสาํ หรบั แตละ Case
Your country is Thailand.
นเี่ ปนผลลัพธเมอื่ รันโปรแกรม ในตัวแปร $country จะมีคา เปน "Thailand" เพราะวาตรงกับเง่อื นไขใน case "th"

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

50

คําสง่ั If ซอนกนั

ในการเขียนโปรแกรมคาํ สงั่ เลอื กเงอื่ นไขสามารถทจ่ี ะซอ นกนั ได ไมวา จะเปน คาํ สง่ั If If-Else หรอื Switch เพ่ือสรา ง
เงอื่ นไขหรอื ในโปรแกรมท่ซี ับซอ นขนึ้ คณุ จะตองไดพบกับเหตกุ ารณท ค่ี าํ สง่ั เหลา นจ้ี ะซอนกันอยแู นนอน
<?php
$name = "Mateo";
$logged_in = true;
$lang = "en";
if ($logged_in) {

echo "Hello $name, you now logged in.\n";
if ($lang == "en") {

echo "The website displayed in English.\n";
} else if ($lang == "th") {

echo "The website displayed in Thai.\n";
} else {

echo "The language was not set.\n";
}
} else {
echo "You are not logged in.\n";
}
?>
ในตัวอยาง เปน การใชงานคาํ ส่ังเงือ่ นไขซอนกนั คําสัง่ If ดา นนอกเปน การตรวจสอบการเขาสรู ะบบของเว็บไซต ถา ผใู ชเขาสรู ะบบ
เราจะแสดงขอ ความทกั ทายจะมคี าํ สัง่ If ท่ีซอ นกันอยภู ายในสาํ หรับตรวจสอบภาษาท่ีจะแสดงในเวบ็ ไซต
Hello Mateo, you now logged in.
The website is displayed in English.
นเี่ ปน ผลลัพธเม่ือรันโปรแกรม ซึ่งทาํ งานในบล็อคของคาํ สง่ั ทีซ่ อ นกันของ if ($logged_in) และ if ($lang == "en") ตามลาํ ดบั
Ternary condition
Ternary condition เปน คําสง่ั ตรวจสอบเงอื่ นไขโดยมี Operand เพียงแค 3 ตัว มันเปน ทางลดั ของการใชค าํ สั่ง If-Else ซง่ึ อํานวย
ความสะดวกในกรณีทต่ี องการตรวจสอบเงอื่ นไขเพยี งเล็กนอย นเ่ี ปน รปู แบบการใชงานของ Ternary condition ในภาษา PHP
expression ? value for true : value for false;
เครื่องหมาย ? ใชส าํ หรับสราง Ternary condition โดย value for true เปน คาทเ่ี มื่อเงอ่ื นไขเปน จรงิ value for false เปน คาที่
เมื่อเงอื่ นไขเปน เทจ็ มาดตู ัวอยา งการใชงาน
<?php

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

51

$male = true;
echo "That is " . ($male ? "his" : "her") . " car.\n";
$n= 10;
echo "$n is an " . ($n % 2 == 0 ? "even": "odd") . " number.\n";
?>
ในตวั อยา งเราไดใช Ternary condition ชว ยในการเขียนโปรแกรม ถา คุณไมใ ชวิธนี คี้ ุณอาจจะตอ งเขียนในรูปแบบเตม็ ดงั นี้

$male = true;
if ($male)

echo "That his car.\n";
else

echo "That her car.\n";
การใช Ternary condition จะชว ยใหค ณุ สามารถเขยี นโปรแกรมไดส ้ันลงในบางกรณีที่โปรแกรมมสี ว นท่ีจําเปน ตอ งสราง
เงือ่ นไขที่มสี องทางเลือกและไมซบั ซอน
Info: ในบล็อคของคาํ สง่ั เลือกเง่อื นไข โดยปกตคิ ําสั่งจะตอ งอยูภ ายในวงเลบ็ { } ในกรณีทมี่ คี าํ สง่ั เพยี งคําสั่งเดยี ว คณุ
สามารถไมใสวงเว็บได
ในชีวติ ประจําวัน เรามักจะเจอกับส่ิงทเ่ี กิดขนึ้ ซ้ําๆ ในวธิ กี ารหรอื กระบวนการแบบเดมิ ยกตวั อยา งเชน ในตอนเชา ของทุกๆ วนั คุณ
เดนิ ทางไปทํางาน หรือพนกั งานขายอาหาร พวกเขาตอ งรับรายการอาหาร แลว จึงไปทําอาหาร จนถงึ นํามาใหบรกิ าลกู คา ซึ่งในแตล ะ
วนั อาจจะมีลกู คา เปน รอ ยหรอื พันคน ซงึ่ พวกเขารบั มือกับลกู คาในวธิ เี ดียวกัน
ในการเขียนโปรแกรม การวนซํ้านนั้ เปนสง่ิ ทส่ี ําคญั ในการทจี่ ะทาํ ใหโ ปรแกรมสามารถทาํ งานดวยคําสัง่ เดิมไดอ ยา งมปี ระสทิ ธิภาพ
ยกตัวอยาง เชน การแสดงรายช่อื ของสมาชิกของเวบ็ ไซตจาํ นวน 20 คน นเี่ ปนตวั อยา งทีต่ องใชคําสัง่ วนซ้ําในการจัดการ โดยมี
แนวคดิ ท่ีวา เมอื่ คณุ สามารถแสดงขอ มลู ของสมาชกิ คนแรกไดแ ลว คนตอไปก็สามารถทาํ ในแบบเดยี วกนั ได
เราจะมาเร่มิ กบั คาํ สงั่ วนซํ้าทพ่ี ืน้ ฐานท่ีสดุ ในภาษา PHP ซึง่ กค็ อื คําสง่ั While loop

คําสั่ง while loop

คําสงั่ While loop คอื คําส่ังวนซ้าํ ทีพ่ ้นื ฐานท่ีสุดในภาษา PHP มนั ใชสาํ หรับควบคมุ การทาํ งานของโปรแกรมใหทาํ งานซ้าํ ๆ
ภายใตเงอ่ื นไขที่กําหนด น่เี ปน รปู แบบของการใชง านคาํ ส่ัง While loop ในภาษา PHP

while (expression)
statements

ในการทาํ งานของคาํ สัง่ While loop จะทาํ งานในขณะที่ expression เปน จรงิ ซงึ่ statements เปน คําส่งั ภายในบล็อคของ While
loop ทีอ่ าจจะประกอบไปดวยหนง่ึ หรอื หลายคาํ ส่ัง มาดตู วั อยางการใชง านคําสั่ง While loop ในภาษา PHP
<?php
$i = 1;
while ($i <= 10) {

echo "$i\n";
$i++;
}
?>
ในตัวอยางเปนการใชคําส่งั While loop ในการแสดงผลตัวเลขจาก 1 - 10 ตัวแปร $i เปนตัวแปรกาํ หนดคาเรม่ิ ตน ในการทํางาน
และ $i <= 10 เปน เง่ือนไขของคําส่งั วนซ้ํา ซ่ึงหมายความวา โปรแกรมจะทาํ งานในบล็อคของคําสง่ั ถา หากคา ของ $i นอยกวา หรอื
เทา กบั 10 ในบล็อคของคําส่งั While loop เราแสดงผลตวั เลขและเพม่ิ คา $i ในแตล ะรอบ

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

52

1
2
3
4
5
6
7
8
9
10
น่ีเปน ผลลัพธของโปรแกรม ซึ่งเราไดแ สดงตวั เลข 1 - 10 ออกทางหนาจอ คุณอาจจะลองเขยี นโปรแกรมเพอ่ื แสดงตัวเลขจาก 30 -
50 โดยการเปลย่ี นตัวแปร $i = 30 และเงื่อนไขเปน $i <= 50และดวู า มันนาทงึ่ แคไ หน
ตอ ไปมาดตู วั อยา งเพ่มิ เตมิ กับการใชค าํ สงั่ While loop ซึง่ เราจะสรา งนาฬิกานับถอยหลังสําหรบั การปใหม
<?php
$i = 20;
$count_by = 2;
while ($i >= 0) {
echo "Count down $i\n";
$i -= $count_by;
}
echo "Firework is being fired.\n";
echo "Happy New Year 2017.\n";
?>
ในตัวอยาง เปนโปรแกรมสําหรับนบั ถอยหลังเพื่อฉลองปใหมท ่กี าํ ลงั จะมาถงึ ตวั แปร $i เปน คาเร่มิ ตน ของการนบั
และ $count_by สาํ หรบั การนับคา ลงทลี ะของการนับ เงื่อนไขในคาํ สัง่ While loop คือ $i >= 0 เราจะทําการนับถา หากการนบั ยัง
ไมถ ึง 0 ในแตล ะรอบเราลดคา ของตัวแปร $i ดวยคาํ ส่ัง $i -= $count_by ซึ่งเปน การลดลงท่ีละ 2
Count down 20
Count down 18
Count down 16
Count down 14
Count down 12
Count down 10
Count down 8
Count down 6
Count down 4
Count down 2
Count down 0

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

53

Firework is being fired.
Happy New Year 2017.
นเ่ี ปนผลลัพธของโปรแกรม ซ่งึ โปรแกรมจะนับจาก 20 จนถึง 0 โดยลดลงทลี ะ 2 จะเริม่ แสดงขอ ความตอนรับปใ หม
จากในตวั อยา งท้ังสอง คุณจะเห็นวา เราสามารถใชค าํ สัง่ วนซ้ําในการควบคมุ ใหโปรแกรมทํางานแบบเดมิ ๆ โดยทเ่ี ราไมต อ งเขยี นโคด
มากมาย ซง่ึ ส่ิงทท่ี ํางานซํา้ ๆ ก็คือภายในบลอ็ คของคาํ ส่งั While loop เปน การแสดงผลตัวเลขในแตล ะรอบของการทํางาน

คําสง่ั do while loop

คาํ สงั่ Do while loop นัน้ มกี ารทํางานคลายกบั คาํ ส่ัง While loop แตส ง่ิ ท่แี ตกตางคือในคําสัง่ Do while loop จะ
ทาํ งานภายใน Loop กอนอยา งนอ ยหน่ึงรอบและตรวจสอบเงอื่ นไขในภายหลัง นี่เปน รูปแบบของการใชง านคาํ ส่งั Do while loop
ในภาษา PHP

do {
statements

} while (expression);

ในการใชง านคําสั่ง Do while loop นนั้ สวนของการตรวจสอบเงอื่ นไข expression จะอยตู อนทา ย นน่ั หมายความจะตองมีการ
ทาํ งานในลปู อยา งนอ ยแนน อน 1 รอบ มาดตู ัวอยา งการใชงานคําสั่ง Do while loop ในภาษา PHP กับโปรแกรมการสุมตัวเลข
<?php
do {

$number = rand(0, 8);
echo "Random number $number\n";
} while ($number != 0);
?>
ในตวั อยา ง เปนการใชคาํ สง่ั Do while loop ในการสุมตวั เลขระหวาง 0 - 8 และโปรแกรมจะทํางานใน Loop ในขณะทคี่ า ท่สี มุ ได
ไมใช 0 ในเงอ่ื นไข $number != 0

Random number 1
Random number 1
Random number 3
Random number 2
Random number 6
Random number 1
Random number 5
Random number 6
Random number 0
Yeah! Random stopped, catch up 0.
นีเ่ ปน ผลลพั ธของโปรแกรม ซ่ึงในบางสถานการณของการเขยี นโปรแกรม คณุ อาจจะตองใชคาํ สั่ง Do while loop เพือ่ อาํ นวยความ
สะดวก เชน การทํางานทเี่ งื่อนไขตองข้ึนกบั คากอ นหนา ในโปรแกรม อยางไรกต็ ามทง้ั คาํ ส่งั While loop และ Do while loop
สามารถใชแทนกนั ได ในตวั อยางขา งตนนีเ่ ปนโคดเม่ือเราเขยี นโดยใชค าํ สัง่ While loop

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

54

<?php
$number = rand(0, 8);
echo "Random number $number\n";
while ($number != 0) {

$number = rand(0, 8);
echo "Random number $number\n";
}
echo "Yeah! Random stopped, catch up 0.\n";
?>
เพราะวาเราตองการสุม คา และแสดงผลจากการสมุ ทีไ่ ด คุณอาจจะตอ งเขยี นคําสัง่ เดมิ เพิม่ ขึ้นมาเมอื่ ใช While loop สําหรบั ปญ หานี้
ดงั นัน้ ในการเขียนโปรแกรมคุณจะตอ งเขา ใจวาควรจะใชค ําสั่งแบบไหนในการแกปญหา

คําสง่ั for loop

คําสง่ั For loop คอื คําสง่ั วนซ้ําทมี่ กี ารทาํ งานในจาํ นวนรอบทแี่ นน อน ซ่งึ สามารถกําหนดคา เริม่ ตน เง่ือนไข และการ
เปลี่ยนแปลงไวท เ่ี ดยี วกันในตอนตน ของ Loop ทาํ ใหการเขยี นโปรแกรมสัน้ และกระทัดรดั ขึน้ นี่เปน รปู แบบของการใชง านคาํ สงั่ For
loop ในภาษา PHP
for (initializing; expression; updating)

statements
โดยที่ initializing เปนการกาํ หนดคาเรม่ิ ตน สําหรับการทาํ งานของ Loop expression เปนเงอ่ื นไขท่ีจะใหท าํ งานภายใน
Loop updating เปน การเปล่ยี นแปลงของขอ มลู เมอ่ื เสร็จการทาํ งานแตละรอบของ Loop มาดูตวั อยา งการใชง านคําสงั่ For loop
ในภาษา PHP
<?php
for ($i = 1; $i <= 10; $i++) {

echo "$i, ";
}
echo "\n";
for ($i = 0; $i <= 50; $i += 5) {

echo "$i, ";
}
echo "\n";
for ($i = 10; $i >= -10; $i -= 2) {

echo "$i, ";
}
echo "\n";
?>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

55

ในตัวอยาง เปนการใชง านคําสั่ง For loop เพือ่ แสดงตัวเลข ซ่งึ คุณจะเหน็ วา เราไดก าํ หนดคาเริม่ ตน เง่ือนไข และการเปลี่ยนแปลงใน
ตอนตน ของ Loop ทําใหคําสง่ั For loop เปนคาํ สง่ั ทส่ี ะดวกและงา ยตอ การใชงาน ในลปู แรกเปนการแสดงตัวเลขต้ังแต 1 - 10 ลูป
ทีส่ องเปนการแสดงตัวเลขต้ังแต 0 - 50 โดยเพ่ิมคาทลี ะ 5 และในลปู สุดทา ย เปนการแสดงตัวเลขจาก 10 - -10 โดยลดคาทลี ะ 2
1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50,
10, 8, 6, 4, 2, 0, -2, -4, -6, -8, -10,
และน่ีเปนผลลพั ธการทํางานของโปรแกรมในการแสดงผลตัวเลขในแบบตางๆ ในภาษา PHP
ตอ ไปมาดตู วั อยา งเพิ่มเตมิ กับการใชงานคาํ ส่งั Loop กับการคาํ นวณทางคณิตศาสตร
<?php
// Finding summation between number m and n
$m = 10;
$n = 50;
$sum = 0;
for ($i = $m; $i <= $n; $i++) {

$sum += $i;
}
echo "Sum between $m to $n = $sum\n";
?>
ในตวั อยา ง เปน การใชคาํ ส่งั For loop ในการหาผลรวมของตวั เลขระหวา งตวั แปร $m และ $n ในแตละรอบเราจะบวกคาของ
ตวั เลขลงไปในตัวแปร $sum
Sum between 10 to 50 = 1230
นเ่ี ปนผลลพั ธการทํางานของโปรแกรม
ตวั อยางการใชคาํ สั่ง For loop ในการหาคา Factorial ของตวั เลขในภาษา PHP
<?php
// Finding a factorial of n'th number
$n = 5;
$fac = 1;
for ($i = 1; $i <= $n; $i++) {

$fac *= $i;
}
echo "$n! = $fac";
?>
ในตวั อยางเปน โปรแกรมในการหาคา Factorial ของตวั เลข n โดยสตู รการหาคา Factorial กค็ ือการนําตัวเลขระหวา ง 1 - n มาคณู
ซง่ึ เราสามารถใชคาํ สัง่ For loop สาํ หรับจัดการเรอ่ื งนี้ไดอยา งงายดาย
เรามตี ัวอยางเพม่ิ เตมิ ในการใชง านคําสงั่ For loop ในโปรแกรมนีเ้ ปน โปรแกรมในการแปลงอณุ หภมู จิ ากองศาเซลเซยี สไปเปนองศา
ฟาเรนไฮตแ ละเคลวิน และแสดงผลเปนแบบตาราง

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

56

<?php
echo "Celsius\t|Fahrenheit|Kelvin\t|Description\n";
$description = [

0 => "Freezing point of water",
20 => "Room temperature",
36 => "Body temperature",
100 => "Boiling point of water"
];
for ($celcius = 0; $celcius <= 100; $celcius += 4) {
$fahrenheit = ($celcius * 1.8) + 32;
$kelvin = $celcius + 273.15;
echo "$celcius\t| $fahrenheit\t| $kelvin";
if (array_key_exists($celcius, $description)) {

echo "\t$description[$celcius]";
}
echo "\n";
}
?>
ในตัวอยางเปนโปรแกรมในการแปลงอณุ หภมู จิ ากองศาเซลเซยี สไปเปน องศาฟาเรนไฮตแ ละเคลวนิ โดยเรม่ิ ตน จาก 0 - 100 องศา
และเพม่ิ ขนึ้ ทลี ะ 4 และอาเรย $description สําหรบั เก็บคาํ อธิบายแตละชว งอณุ ภมู ิไวโ ดยมีคา ขององศาเซลเซยี สเปนคีย เราใช
ฟงกช ัน array_key_exists() ในการตรวจสอบถาในอุณห๓ูมิน้มี ีการกําหนดคาํ อธิบายเพื่อนาํ ไปแสดงในคอลมั น Description ของ
ตาราง

$fahrenheit = ($celcius * 1.8) + 32;
$kelvin = $celcius + 273.15;

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

57

นเ่ี ปนสูตรของการแปลงอณุ หภูมิ สาํ หรับการแปลงจากองศาเซลเซียสไปเปนองศาฟาเรนไฮตจะมสี ูตรเปน T(F) = T(C) * 5 / 9 +
32 และจากองศาเซลเซยี สเปน เคลวินมสี ตู รเปน K = T(C) + 273.15

Celsius |Fahrenheit|Kelvin |Description
0 | 32 | 273.15 Freezing point of water
4 | 39.2 | 277.15
8 | 46.4 | 281.15
12 | 53.6 | 285.15
16 | 60.8 | 289.15
20 | 68 | 293.15 Room temperature
24 | 75.2 | 297.15
28 | 82.4 | 301.15
32 | 89.6 | 305.15
36 | 96.8 | 309.15 Body temperature
40 | 104 | 313.15
44 | 111.2 | 317.15
48 | 118.4 | 321.15
52 | 125.6 | 325.15
56 | 132.8 | 329.15
60 | 140 | 333.15
64 | 147.2 | 337.15
68 | 154.4 | 341.15
72 | 161.6 | 345.15
76 | 168.8 | 349.15
80 | 176 | 353.15
84 | 183.2 | 357.15
88 | 190.4 | 361.15
92 | 197.6 | 365.15
96 | 204.8 | 369.15
100 | 212 | 373.15 Boiling point of water
นเ่ี ปน ผลลัพธการทํางานของโปรแกรม

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

58

คําสงั่ foreach loop

คาํ ส่ัง Foreach loop ถูกออกแบบมาใหใชงานกับอาเรย มันใชสาํ หรบั วนอานคาในอาเรยโ ดยจะเร่มิ จากสมาชิกตวั แรก
จนถึงสมาชิกตัวสดุ ทา ย มาดตู ัวอยา งการใชง าน Foreach ในภาษา PHP
<?php
// foreach with normal array
$numbers = [10, 20, 30, 40, 50];
foreach ($numbers as $el) {

echo "$el\n";
}
// foreach with key value array
$country["us"] = "United State";
$country["de"] = "German";
$country["uk"] = "Ukraine";
$country["sk"] = "Slovakia";
foreach ($country as $key => $value) {

echo "$key = $value\n";
}
?>
ในตวั อยา งเปน การใชค าํ ส่ัง Foreach ท้งั การอา นคา จากอาเรยแบบปกตแิ ละแบบ Key value โดยการทํางานของคําสั่ง Foreach
จะวนอา นคาภายในอาเรยต ้งั แตส มาชิกตวั แรกจนถงึ ตัวสดุ ทา ย ในแตล ะรอบของการทํางานขอ มูลจะถกู เก็บในตวั แปร $el และ
สาํ หรับแบบ Key value นนั้ จะเกบ็ ทั้ง Key และ Value ในตัวแปร $key และ $value ตามลาํ ดับ คณุ สามารถเรยี นรูเ ก่ียวกับอาเรย
ในบทของอาเรย

10
20
30
40
50
us = United State
de = German
uk = Ukraine
sk = Slovakia
นีเ่ ปนผลลพั ธข องการใชคาํ สั่ง Foreach loop กบั อาเรยในภาษา PHP

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

59

คําสั่ง break

คําสัง่ break คอื คาํ สัง่ สาํ หรบั ในการควบคุมการทํางานของ Loop เพือ่ ใหหยุดการทาํ งานในทนั ที ซึ่งโดยปกตแิ ลว
โปรแกรมจะทํางานใน Loop จนกวาเง่ือนไขจะไมเปนจรงิ คณุ สามารถใชคาํ สงั่ break เพอ่ื บังคับใหโปรแกรมจบการทาํ งานจาก
Loop ได มาดตู วั อยา งการใชคาํ สง่ั ฺbreak ในภาษา PHP
<?php
for ($i = 1; $i <= 10; $i++) {

echo "$i, ";
if ($i == 5) {

break;
}
}
?>
ในตัวอยา ง เปน โปรแกรมในการใชคําสง่ั break เพ่อื หยุดการทํางานเมอื่ คา ของ $i เทา กับ 5 ถงึ แมเงอื่ นไขการทาํ งานของ Loop จะ
ยงั คงเปนจรงิ แตเ มื่อโปรแกรมพบกับคาํ สั่ง break มันจะออกจาก Loop ในทนั ทโี ดยไมส นใจเง่อื นไขอกี ตอไป
1, 2, 3, 4, 5,
นเ่ี ปนผลลพั ธการทาํ งานของโปรแกรม

คําสง่ั continue

คําส่ัง continue คือสําหรับในการควบคุมการทาํ งานของ Loop เชน เดียวกนั กับคาํ สั่ง break แตค าํ สงั่ continue จะขาม
การทาํ งานไปรอบตอ ไปในทันที โดยทไี่ มส นใจคําส่ังการทํางานหลงั จากมนั มาดตู ัวอยา งการใชง านของคาํ สั่ง continue ในภาษา
PHP
<?php
for ($i = 1; $i <= 10; $i++) {

if ($i % 2 == 0) {
continue;

}
echo "$i, ";
}
?>
ในตวั อยาง เราใชค ําส่งั continue ในการบังคับใหโปรแกรมทํางานรอบตอไปในทันทเี มื่อคา ของ $i นน้ั เปนเลขคู นนั่ หมายความวา
คาํ สั่งหลงั จากนั้น echo "$i, "; จะถกู ขามการทํางานไป
1, 3, 5, 7, 9,
นเ่ี ปน ผลลพั ธข องโปรแกรม ซึ่งคณุ จะเหน็ วา เลขจาํ นวนคูถกู ขามการแสดงผลไปจากการทาํ งานของคําสงั่ continue
ท้ังคําส่ัง break และ continue สามารถใชไ ดกับ Loop ทกุ ประเภททไี่ ดกลา วมาในบทนี้ ถงึ แมว าในตวั อยางของเราแสดงเพยี งแค
การใชง านกับคําสง่ั For loop กต็ าม

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

60

คําส่ัง For loop ซอน For loop

Loop ทุกประเภทสามารถซอนกนั ได เชน เดย่ี วกันกบั คาํ ส่ังเลือกเงอื่ นไข ซึ่งการใชคําสงั่ Loop ซอนกันจะใชจ ดั การกบั งาน
ประเภททม่ี ีการทํางานแบบสองขั้นหรือสองมิติ เชน อาเรยหรือตาราง ในตวั อยา งน้เี ราเขยี นโปรแกรมเพือ่ วาดตน ครสิ ตม าสโดยการ
ใชค ําสง่ั For loop ซอนกัน
<?php
$size = 10;
// Draw leaves
for ($i = 0; $i < $size; $i++) {

for ($j = 0; $j < $size * 2; $j++) {
if ($i >= $size - $j - 1 &&
$size - $i <= 2* $size - $j - 1)
echo "*";
else
echo " ";

}
echo "\n";
}
// Draw tree body
for ($i = 0; $i < 2; $i++) {
for ($j = 0; $j < $size * 2; $j++) {

if ($j >= $size - 2 && $j <= $size)
echo "*";

else
echo " ";

}
echo "\n";
}
echo "marcuscode.com's Christmas tree";
?>
ในโปรแกรมของเราแบง การทาํ งานออกเปน 2 สว นสาํ หรับการวาดตนครสิ ตมาส คอื สวนของการวาดใบและตนไม ซงึ่ เปนการซอ น
กนั สองช้ัน ลูปภายนอกใชตัวแปร $i เปน Index สาํ หรบั จดั การการวาดในแตล ะแถว และลูปภายในใชต ัวแปร $j เปน Index สาํ หรบั
จดั การการวาดในแตล ะคอลัมน และตวั แปร $size เปน การกําหนดขนาดใหกบั ตน ครสิ ตม าส

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

61

*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
***
***
marcuscode.com's Christmas tree
นีเ่ ปน ผลลพั ธข องตน ครสิ ตม าสจากโปรแกรมของเรา
อาเรย
อาเรย (Array) คือประเภทขอ มูลที่เก็บขอ มูลเปนชุดลําดับเรยี งตอ กนั ในหนวยความจาํ อาเรยเ ปน ตัวแปรประเภทหน่งึ ในภาษา PHP
ท่ีสามารถเก็บขอมลู ไดม ากกวา หนง่ึ คา อาเรยช วยอํานวยความสะดวกในกรณีที่เราตอ งการจดั การขอ มลู ประเภทเดยี วกันเปนจํานวน
มาก ยกตัวอยา งเชน คุณตอ งการเก็บคะแนนของนักเรยี น 10 คน การใชอาเรยจึงเปน สงิ่ ท่สี ะดวก
อาเรยในภาษา PHP นน้ั สามารถเกบ็ ขอ มลู ไดทุกประเภททงั้ Primitive type ออบเจค็ และ Resource อาเรยส ามารถมไี ดหลายมติ ิ
หรอื เราเรียกวาอาเรยข องอาเรย นอกจากนี้อาเรยย ังมีฟงกชนั อํานวยความสะดวกในการจดั การขอ มลู มากมายในภาษา PHP

ประกาศและใชงานอาเรย

กอ นเริ่มใชง านอาเรย เราจะใหคณุ เห็นถงึ ความแตกตา งระหวางการใชงานอาเรยและไมใ ชสําหรบั จดั การขอมลู จาํ นวนมาก
คุณมตี วั เลข 5 ตวั ทีต่ อ งการเกบ็ ในตวั แปรและนําตวั เลขเหลานนั้ มาคาํ นวณ
$number1 = 10;
$number2 = 20;
$number3 = 30;
$number4 = 40;
$number5 = 50;
คาํ ตอบกค็ ือคณุ ตองประกาศตัวแปร 5 ตวั สาํ หรบั เก็บขอ มลู เหลาน้ี ในตอนน้ีเราจะใชอาเรยส าํ หรับเกบ็ ขอ มลู เหลา นี้แทน
$numbers = [10, 20, 30, 40, 50];
ในตัวอยางขา งบน เราไดเ ปลย่ี นมาใชอ าเรยสาํ หรับเกบ็ ขอมลู ตัวเลขท้งั 5 ตัวแทน ซง่ึ การประกาศตัวแปรอาเรยน นั้ คา จะลอมดว ย []
และแตล ะคาจะคน่ั ดวยเครือ่ งหมายคอมมา ,
<?php
$numbers = [15, 28, 34, 49, 56, 82];
echo $numbers[0] . "\n";
$numbers[3] = 100;
echo $numbers[3] . "\n";
print_r($numbers);
?>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

62

ในตวั อยา งเราไดป ระกาศอาเรย $numbers ซ่ึงเก็บตัวเลข 6 ตวั เพอื่ เขาถึงคา ภายในตวั แปรอาเรยเ ราเขาถงึ ผาน Index ของมัน ซ่งึ
Index ของอาเรยใ นภาษา PHP นนั้ เรมิ่ จาก 0 ดงั น้ันในตวั อยางดังกลาวคณุ สามารถเขา ถึงขอ มูลในอาเรยไดจาก $numbers[0] ถึง
$numbers[5] ซึ่งเปน สมาชิกตัวแรกและตัวสดุ ทายในอาเรยต ามลาํ ดับ
echo $numbers[0] . "\n";
$numbers[3] = 100;
echo $numbers[3] . "\n";
เราไดแ สดงผลขอ มูลในตําแหนง แรกของอาเรยดว ย $numbers[0] และเปลย่ี นคาขอมลู ตาํ แหนงท่ี 4 เปน 100 ใน $numbers[3]
และแสดงผลออกมา
print_r($numbers);
ฟงกช นั print_r() ใชส ําหรับแสดงผลขอ มลู ในอาเรยท่ปี ระกอบไปดว ย Index และคาภายในอาเรย
15
100
Array
(

[0] => 15
[1] => 28
[2] => 34
[3] => 100
[4] => 56
[5] => 82
)
นเี่ ปนผลลัพธของโปรแกรมในการแสดงผลขอ มลู ในอาเรย
<?php
$names = ["Marius", "Perseus", "Zeus", "Poseidon"];
$mixed = [1, "PHP", "C#", 1.54, true];
$empty = [];
$days = ["Sunday"];
array_push($days, "Monday");
array_push($days, "Tuesday");
$days[] = "Wednesday";
$days[] = "Thursday";
$planets[0] = "Mercury";
$planets[3] = "Mars";
$planets[4] = "Jupiter";
$planets[-1] = "Sun";
print_r($names);
print_r($mixed);
print_r($empty);
print_r($days);
print_r($planets);
?>
ตอ ไปมาดตู ัวอยา งการประกาศอาเรยในรปู แบบตางๆ ทท่ี ําไดในภาษา PHP
$names = ["Marius", "Perseus", "Zeus", "Poseidon"];
$mixed = [1, "PHP", "C#", 1.54, true];
$empty = [];

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

63

ในตวั อยา งเราไดป ระกาศอาเรย $names สําหรบั เกบ็ ขอ มลู ประเภท String และในภาษา PHP อาเรยส ามารถเกบ็ ขอมลู ท่ตี า ง
ประเภทกนั ในตวั แปรเดยี วไดเ หมอื นตัวแปร $mixed และในตัวแปร $empty เปน อาเรยว า งหรืออาเรยท ไ่ี มม ีสมาชกิ อยู
$days = ["Sunday"];
array_push($days, "Monday");
array_push($days, "Tuesday");
$days[] = "Wednesday";
$days[] = "Thursday";
หลังจากทป่ี ระกาศอาเรยแ ลว คณุ สามารถเพมิ่ ขอ มลู เขา มาในภายหลงั โดยใชฟงกชัน array_push() หรอื ใชการเพ่มิ ในรูปแบบของ
$days[] ซงึ่ Index ของอาเรยจ ะเพ่ิมขน้ึ ทีละ 1 จาก Index ลา สุด
$planets[0] = "Mercury";
$planets[3] = "Mars";
$planets[4] = "Jupiter";
$planets[-1] = "Sun";
ในภาษา PHP เราสามารถกําหนดคา ใหก บั อาเรยส ําหรบั บาง Index ได และ Index ของอาเรยส ามารถเปน คาลบไดเชน กนั

อาเรย Key value

ในภาษา PHP คุณสามารถประกาศอาเรยท่มี ี Index เปน ขอ มลู ประเภทอนื่ นอกจาก Integer ได ซงึ่ เราเรียกวา Key array
มาดูตวั อยางการประกาศและใชง าน
<?php
$country["us"] = "United State";
$country["de"] = "German";
$country["uk"] = "Ukraine";
$country["sk"] = "Slovakia";
$country["th"] = "Thaiand";
print_r($country);
?>
ในตวั อยา งเปนการประกาศอาเรย โดยเราใช String เปน Key (Index) ของอาเรย ในการเขา ถึงขอ มูลของอาเรยเ ราจะเขาถงึ จากคยี 
ทีไ่ ดกําหนดขึน้ เชน $country["uk"] เปน การเขาถึงคา ของ "Ukraine" หรือใชสําหรับการกําหนดคา สาํ หรับ Key นี้

การใชค ําสัง่ For loop กบั อาเรย

เนอ่ื งจากอาเรยน ้นั เก็บขอ มูลเปน ลาํ ดบั และมกี ารเขา ถึงผา น Index ดงั นั้นคาํ สง่ั For loop กับอาเรยจ ึงเปน สิง่ ทจี่ าํ เปนใน
การเขยี นโปรแกรม ซงึ่ โดยท่วั ไปแลวในการเขียนโปรแกรม เรามกั จะใชคาํ สงั่ For loop กบั อาเรยเ สมอ
<?php
$numbers = [];
for ($i = 0; $i < 10; $i++) {

$numbers[] = rand(1, 100);
}
echo "Random numbers: ";
for ($i = 0; $i < 10; $i++) {

echo $numbers[$i], ", ";
}
?>
ในตวั อยางเปนการใชค ําส่งั For loop กับอาเรย ใน Loop แรกเราไดทาํ การวนรอบการสมุ ตัวเลขระหวา ง 1 - 100 ดวยฟงกชนั
rand() จํานวน 10 ตวั และใสในอาเรย $numbers และใน For loop ทส่ี องเปนการวนอานคาภายในอาเรย เราใชตวั แปร $i เปน
Index ในการเขา ถึงคาภายในอาเรย $numbers[$i]

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

64

Random numbers: 7, 92, 39, 32, 75, 67, 23, 29, 8, 73,
นี่เปน ผลลพั ธเ ม่ือรันโปรแกรม ตัวเลขนน้ั ไดจ ากการสุมซงึ่ อาจจะแตกตา งกนั ในการรนั แตล ะครง้ั

การใชค ําสั่ง Foreach loop กบั อาเรย

คาํ สง่ั Foreach loop ถูกออกแบบมาใหใ ชง านกบั อาเรย มันใชสาํ หรับวนอานคา ในอาเรยโ ดยจะเร่มิ จากสมาชกิ ตวั แรก
จนถงึ สมาชิกตวั สดุ ทาย มาดตู ัวอยา งการใชง าน Foreach ในภาษา PHP
<?php
// foreach with normal array
$numbers = [10, 20, 30, 40, 50];
foreach ($numbers as $el) {

echo "$el\n";
}
// foreach with key value array
$country["us"] = "United State";
$country["de"] = "German";
$country["uk"] = "Ukraine";
$country["sk"] = "Slovakia";
foreach ($country as $key => $value) {

echo "$key = $value\n";
}
?>
ในตวั อยางเปน การใชคาํ สั่ง Foreach ทั้งการอา นคาจากอาเรยแ บบปกติและแบบ Key value และแสดงผลออกทางหนาจอ โดย
คําส่ัง Foreach จะวนอา นคา ภายในอาเรยจนครบ ในแตละรอบของการทํางานสาํ หรบั แบบปกตขิ อมลู จะถกู เก็บในตวั แปร $el และ
สําหรับแบบ Key value นนั้ จะเกบ็ ท้ัง Key และ Value ในตวั แปร $key และ $value ตามลาํ ดับ

อาเรย 2 มิติ

ที่ผา นมาเปนการใชง านอาเรยหนึ่งมติ ิ ในภาษา PHP คณุ สามารถสรา งอาเรยห ลายมติ ิได หรือเราเรยี กวา อาเรยข องอาเรย
ลองจนิ ตนาการวา คณุ ใสอาเรยล งไปในอาเรย ซงึ่ ตอไปนเ้ี ราจะพูดเกยี่ วกบั การประกาศและใชง านอาเรยใ น 2 มิติ
$two_dimension_array = [Array, Array, Array, ... ];
อาเรย 2 มิตินนั้ อาจจะใชกบั งานท่หี ลากหลายและแตกตา งกนั ออกไป รปู แบบการเก็บขอมลู ของมนั เหมอื นตารางหรือเมทริกซ ซ่ึง
ประกอบไปดวยแถวและคอลมั น มาดูตวั อยา งการประกาศอาเรย 2 มิตใิ นภาษา PHP
<?php
$number = [

[43, 23, 5, 43],
[13, 21, 63, 93],
[54, 65, 82, 27],
[8, 36, 73, 82],
];
print_r($number);
?>
ในตวั อยาง เปนการประกาศอาเรย 2 มติ ิ การในเขา ถงึ ขอมลู ของอาเรย เราเขา ถงึ โดยใช Index สองตวั เชน ตองการเขา ถึงตวั เลข
21 ในแถวท่สี อง จะเขา ถงึ โดย $number[1][1] และเขาถึงตัวเลข 73 ในแถวสดุ ทา ยจะเปน $number[3][2] เปน ตน

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

65

<?php
$experience["name"] = ["Mateo", "Mark", "Thomas", "Danny"];
$experience["lang"] = ["C#", "PHP", "C++", "Java"];
$experience["year"] = [2, 5, 8, 10];
for ($i = 0; $i < 4; $i++ ) {

echo $experience["name"][$i], " has ";
echo $experience["year"][$i], " years experienced in ";
echo $experience["lang"][$i], ".\n";
}
?>
ตัวอยางตอมาเปน การประยกุ ตใ ชอ าเรยส องมติ แิ บบ Key และแบบปกตใิ นการเกบ็ ขอมลู 3 อยา งของบุคล คอื ชอ่ื จํานวนป และ
ภาษาโปรแกรม สาํ หรับมติ ิภายนอกหรอื Row และมติ ภิ ายในหรอื Column เปนการเกบ็ ขอ มลู ของแตล ะคน และเราใชคาํ ส่ังสัง่ For
loop ในการวนอานขอ มูล
Mateo has 2 years experienced in C#.
Mark has 5 years experienced in PHP.
Thomas has 8 years experienced in C++.
Danny has 10 years experienced in Java.
น่ีเปน ผลลพั ธก ารทาํ งานของโปรแกรม

ในภาษา PHP เพราะวาอาเรยนันมกี ารทํางานในรูปแบบของอาเรย ดังน้ันอาเรยใ นอาเรยส ามารถมขี นาดทแ่ี ตกตางกนั ได ดังใน
ตวั อยา ง
<?php
$numbers = [

[10, 50],
[43, 7, 5],
[10],
[20, 20],
[80, 30, 100, 120]
];
for ($i = 0; $i < count($numbers); $i++) {
$sum = 0;
echo "Sum of ";
for ($j = 0; $j < count($numbers[$i]); $j++) {

$sum += $numbers[$i][$j];
echo $numbers[$i][$j] . " ";
}
echo "= $sum\n";
}
?>
ในตัวอยางเปนการประกาศอาเรย 2 มิตใิ นขนาดทไี่ มเทากัน และเราใชค าํ ส่ัง For loop ในการอา นคา ภายในอาเรย เพื่อหาขนาด
ของจํานวนแถวของอาเรยจะใชค ําสงั่ count($numbers) และขนาดของคอลมั นใ นแตล ะแถวจะใชคาํ ส่งั count($numbers[$i])
เพอ่ื เขาถงึ ขอ มูลในอาเรยเ ราใชคาํ สัง่ $numbers[$i][$j] ท่สี อดคลองไปกับการวนของคําสัง่ Loop

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

66

Sum of 10 50 = 60
Sum of 43 7 5 = 55
Sum of 10 = 10
Sum of 20 20 = 40
Sum of 80 30 100 120 = 330
น่ีเปน ผลลัพธของโปรแกรมท่แี สดงขอมลู และผลรวมของแตล ะแถว

อาเรย 3 มิตแิ ละหลายมิติ
นอกจากนค้ี ุณยังสามารถสรา งอาเรยท ่ีมากกวา 2 มิตไิ ด เชน การสรา งอาเรย 3 มิติ คุณกใ็ สอาเรย 2 มิติลงไปในอาเรย 3
มิตเิ ปน ตน แตโดยสวนมากแลว ในการเขยี นโปรแกรม เราใชม ากสดุ เพียงแค 3 มติ ิ
<?php

$two_dimension_array = [Array, Array, ...];
$three_dimension_array = [$two_dimension_array, $two_dimension_array, ... ];
...
?>
นีเ่ ปน ตัวอยา งของรูปแบบของอาเรยหลายมติ ใิ นภาษา PHP
<?php
$point = [

[
[1, 4],
[2, 3],
[5, 1],

],
[

[3, 5],
[-1, 2],
[-1, 2],
],
[
[0, 4],
[-2, 5],
[-3, 3],
[5, 2],
],
];
for ($i = 0; $i < count($cities); $i++) {
echo "Country ", $i + 1, "\n";
for ($j = 0; $j < count($cities[$i]); $j++) {
echo "City " , $j + 1, " (";
echo $cities[$i][$j][0] , ", ";
echo $cities[$i][$j][1] , ")\n";
}
}
?>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

67

ในตัวอยา งเปนการประกาศและใชง านอาเรย 3 มติ ใิ นภาษา PHP เรามตี วั แปรอาเรย $point สําหรบั เกบ็ พิกัดของเม่ืองของแตล ะ
ประกาศ อาเรยมติ ินอกสดุ หายถึงประเทศ $point[country] และถดั มาหมายถึงเมอ่ื งในประเทศน้ันๆ $point[country][city] และ
ขา งในสุดเปน พกิ ดั x และ y ซ่ึงกค็ ือ $point[country][city][0] และ $point[country][city][1] ตามลําดบั
Country 1
City 1 (1, 4)
City 2 (2, 3)
City 3 (5, 1)
Country 2
City 1 (3, 5)
City 2 (-1, 2)
City 3 (-1, 2)
Country 3
City 1 (0, 4)
City 2 (-2, 5)
City 3 (-3, 3)
City 4 (5, 2)
นเ่ี ปน การผลลพั ธเมือ่ รนั โปรแกรม ซ่งึ เปนการแสดงเมอื งและพิกดั ของแตล ะประเทศท่เี ราไดเก็บไวในอาเรย 3 มติ ิ
ในการเขียนโปรแกรม คณุ สามารถนําอาเรยไ ปประยกุ ตใ ชในรูปแบบตา งๆ ไดม ากมาย ซึ่งอาเรยเ ปน ส่ิงทมี่ ีประโยชนและสาํ คญั ในการ
เขยี นโปรแกรม สาํ หรบั ในบทน้ีท้งั หมดเปนพนื้ ฐานที่คณุ จะตอ งทราบเก่ยี วกบั อาเรย
ในภาษา PHP มฟี งกชนั อํานวยความสะดวกในการจัดการอาเรย ฟงกช ันเหลา น้เี ปน Built-in function พืน้ ฐานที่จําเปน ในการเขยี น
โปรแกรม มีฟงกชนั เก่ยี วกับอาเรยเ ปน จํานวนมากทีค่ ณุ สามารถใชไ ดใ นภาษา PHP เชน ฟง กชนั ในการคน หาขอมูล การจดั เรยี ง การ
คา หามากสดุ การหาคา นอยสดุ เปน ตน ในบทน้จี ะเปน ตัวอยา งการใชง านฟง กชันท่ีสําคญั กับอาเรย

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

68

การเรียงขอมูลในอาเรย

ในภาษา PHP มีฟงกช นั อํานวยความสะดวกในการจัดเรยี งขอ มลู คือฟงกช ัน sort() ซงึ่ เปน ฟงกช ันสําหรบั เรียงขอมลู จาก
นอ ยไปมาก และสามารถใชไ ดก ับขอมลู ทกุ ประเภทและอาเรยท ุกแบบ มาดตู วั อยางการเรยี งขอมูลในอาเรยในภาษา PHP
<?php
$names = ["Marcus", "Andrew", "Emma", "Chloe", "Thomas"];
echo "Unsorted:\n";
foreach ($names as $el) {

echo "$el ";
}
echo "\n";
// Ascending sort
sort($names);
echo "Sorted asc:\n";
foreach ($names as $el) {

echo "$el ";
}
echo "\n";
// Descending sort
rsort($names);
echo "Sorted desc:\n";
foreach ($names as $el) {

echo "$el ";
}
echo "\n";
?>
ในตัวอยาง เรามีอาเรย $names สําหรบั เกบ็ ชือ่ โปรแกรมของเราเรยี งรายชื่อในอาเรยจากนอยไปมากและมากไปนอยตามลาํ ดบั
ตวั อกั ษร ในตอนแรกเราไดท ําการแสดงขอมูลในอาเรยท ยี่ ังไมไ ดจัดเรยี งดวยคําส่ัง foreach
sort($names);
นี่เปน การเรียกใชฟงกช ัน sort() เพ่อื เรียงขอมูลในอาเรยม ากนอยไปมาก เมื่อฟงกช ันน้ีถกู ใชก ับขอ มูลทเี่ ปน ตวั อกั ษรมนั จะเรยี ง
ตามลาํ ดับตัวอักษรแทน การทาํ งานของฟงกช นั นเี้ ปน แบบการสง คา แบบ Pass by reference ลําดับของอาเรยเ ดิมจะหายไป
หลงั จากเรยี กใชงาน
rsort($names);
ฟงกช นั rsort() เปน ฟง กช ันในการขอ มลู จากมากไปนอ ย ซ่งึ ลาํ ดบั ของขอ มูลในอาเรยจะตรงกนั ขา มกับการฟงกชนั sort()
Unsorted:
Marcus Andrew Emma Chloe Thomas
Sorted asc:
Andrew Chloe Emma Marcus Thomas
Sorted desc:
Thomas Marcus Emma Chloe Andrew
น่ีเปนผลลัพธข องการทาํ งานของฟงกชันเรยี งขอ มูลในอาเรย

ฟง กช ันจัดการลําดบั ในอาเรย

นอกจากฟง กชนั สําหรบั การเรยี งขอ มูลในอาเรยแ ลว ภาษา PHP ยังมฟี งกชันในการเรียงลาํ ดับอาเรยใ นอกี รปู แบบคือ การ
เรยี งกลับและการสมุ ตาํ แหนงของอาเรย มาดตู ัวอยา งการใชงาน

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

69

<?php

$planets = ["Mercury", "Venus", "Earth", "Mars",
"Jupiter", "Saturn", "Uranus", "Neptune"];

foreach ($planets as $el) {
echo "$el ";

}
echo "\n";

$reverse = array_reverse($planets);

foreach ($reverse as $el) {
echo "$el ";

}
echo "\n";

shuffle($planets);

foreach ($planets as $el) {
echo "$el ";

}
echo "\n";

?>
ในตวั อยาง เรามตี ัวแปร $planets ในการเก็บชื่อของดาวเคราะหในระบบสรุ ิยะของเราทัง้ 8 ดวง โดยเรยี งจากทใ่ี กลดวงอาทติ ยท ่สี ดุ
คอื ดาวพธุ และดวงดาวทไี่ กลทสี่ ดุ คอื ดาวเนปจนู
$reverse = array_reverse($planets);
ฟงกชนั array_reverse() เปน ฟงกช นั ในการเรียงลําดับของอาเรยใ นลําดบั ทีต่ รงกนั ขามกับอาเรยเ ดมิ ผลลพั ธท ไ่ี ดเปนอาเรยใหมทีม่ ี
ลาํ ดบั กลบั กัน
shuffle($planets);
ฟงกช นั shuffle() เปนฟง กชันสาํ หรบั สมุ ตาํ แหนงในอาเรยใหม
Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune
Neptune Uranus Saturn Jupiter Mars Earth Venus Mercury
Uranus Mars Neptune Saturn Jupiter Mercury Venus Earth
นีเ่ ปน ผลลัพธการทาํ งานของของโปรแกรม ซึง่ ในบรรทัดแรกเปน การแสดงผลลแบบลาํ ดบั ปกตขิ องอาเรย ในบรรทสี่ องเปนลําดับ
กลบั กัน และบรรทดั สดุ ทายเปนลาํ ดบั จากการสุม ตําแหนงใหม

ฟง กช ันนบั และหาผลรวมของอาเรย

ในภาษา PHP มฟี ง กชันสําหรบั นบั จาํ นวนสมาชิกภายในอาเรย หาผลรวมของการบวกและการคณู ของตวั เลขในอาเรย
<?php

$numbers = [5, 2, 10, 3, 9, 4, 1, 6];

echo "There are " . count($numbers) . " numbers in the array.\n";
echo "Summation of the array is " . array_sum($numbers) . ".\n";

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

70

echo "Product of the array is " . array_product($numbers) . ".\n";
?>
ในตวั อยา ง ฟงกชนั count() เปนฟง กช นั สําหรบั นบั จํานวนสมาชิกภายในอาเรย ฟง กชนั array_sum() เปน ฟงกชันสาํ หรบั หาผลรวม
ของตัวเลขในอาเรย และฟง กชัน array_product() เปนฟงกชันสาํ หรับหาผลรวมการคณู ของตัวเลขในอาเรย
There are 8 numbers in the array.
Summation of the array is 40.
Product of the array is 64800.
นเ่ี ปนผลลพั ธก ารทาํ งานของโปรแกรม

ฟง กช ัน in_array() คนหาขอ มูลในอาเรย

ในการคนหาขอมูลในอาเรยน ้ันคณุ สามารถใชฟ ง กชนั in_array() เพื่อตรวจสอบวา คา นม้ี ีอยใู นอาเรยห รอื ไม โดยฟงกชนั จะ
สง คากลับเปน true ถา หากพบ และ false ถา หากไมพ บ มาดตู วั อยา งการตรวจสอบขอ มูลวามีอยใู นอาเรยห รือไมใ นภาษา PHP
<?php
$names = ["Marcus", "James", "Danny", "Samuel"];
$find = "Thomas";
if (in_array($find, $names)) {

echo "$find is in the array.\n";
} else {

echo "$find is not in the array.\n";
}
$find = "James";
if (in_array($find, $names)) {

echo "$find is in the array.\n";
} else {

echo "$find is not in the array.\n";
}
?>
ในตวั อยา ง เปนการคน หาชือ่ ในอาเรยข อง String โดยการใสชือ่ และอาเรยเ ปน อากิวเมนตข องฟงกชัน เมื่อมชี อ่ื อยูในอาเรยโ ปรแกรม
ทาํ งานในบล็อคคาํ สงั่ ของ If และทําในคาํ สัง่ ของ Else เมื่อไมพ บ
Thomas is not in the array.
James is in the array.
น่เี ปน ผลลพั ธการทํางานของโปรแกรมเมอื่ เราไดค น หาสําหรบั Thomas และ James ในอาเรย

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

71

ฟง กชันคน หาและสุมขอ มูลจากอาเรย

ตอไปเปน ฟง กช นั คน หาขอมูลในอาเรยอกี รูปแบบหนึ่ง คือฟง กช ัน array_search() สาํ หรบั คนหาขอ มลู ในอาเรย ถาพบจะ
สงคา Index หรือ Key กลับมา ถา ไมพ บสง เปนคา false แทน
<?php
$names = ["Marcus", "James", "Danny", "Samuel"];
$index = array_search("Danny", $names);
echo "Danny is found at index = $index\n";
$random_index = array_rand($names);
echo $names[$random_index] . " is chosen to be a winner of the game.\n";
?>
ในตัวอยาง เรามอี าเรย $names ในการเก็บชอ่ื ฟงกชัน array_search() ใชสาํ หรับคน หาคา ในอาเรย เพราะวา "Danny" มอี ยใู น
อาเรย คา ทสี่ งหลับมาจึงเปน 2 ซึ่งเปน ตําแหนงของชื่อดังกลาว
$random_index = array_rand($names);
ฟงกชนั array_rand() เปน การสุม เอา Index หรือ Keys ของอาเรยตงั้ แต 1 หรอื หลายคา จากอาเรยท กี่ ําหนด ในตัวอยา งเปน การสมุ
เพยี งหน่ึงคา ถา หากคุณตอ งการสมุ หลายคาสามารถใสค า ท่ตี อ งการเปนอากวิ เมนตต ัวที่สอง ยกตวั อยา งเชน array_rand($names,
2); เปน การสมุ สองคา จากอาเรย ผลลพั ธท ี่ไดจ ะเปนอาเรย
Danny is found at index = 2
Marcus is chosen to be a winner of the game.
นเี่ ปน ผลลัพธเมอื่ รันโปรแกรมในการคนหาและการสมุ คา จากในอาเรย

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

72

ฟง กช นั จัดการเซ็ตของอาเรย

ในภาษา PHP มีฟง กชนั ในการจดั การอาเรยใ นทฤษฏีของเซต (Set theory) เชน Intersect Union และ Difference มาดู
ตวั อยา งการใชง านฟง กช นั เหลานี้
<?php
$array1 = [1, 2, 4, 5, 6, 7];
$array2 = [1, 2, 3, 5, 8, 9];
$intersect = array_intersect($array1, $array2);
echo "Intersect:\n";
display_array($intersect);
$merge = array_merge($array1, $array2);
echo "Merge:\n";
display_array($merge);
$union = array_unique($merge);
echo "Union:\n";
display_array($union);
$difference = array_diff($array1, $array2);
echo "Difference:\n";
display_array($difference);
function display_array($array) {

foreach ($array as $el) {
echo "$el, ";

}
echo "\n";
}

?>
ในตัวอยาง เราไดใ ชฟง กชนั เกย่ี วกับการจดั การอาเรยในรปู แบบของเซตในภาษา PHP ซง่ึ การทาํ งานของอาเรยในการเขียนโปรแกรม
นนั้ ใชห ลักการของเซตในการพัฒนา เรามตี วั แปรอาเรยส องตัวคือ $array1 และ $array2 และจะนํามากระทํากันในรูปแบบตา งๆ
$intersect = array_intersect($array1, $array2);
ฟง กช นั array_intersect() เปน ฟง กชนั สําหรบั หาคา ทีเ่ หมอื นกันในอาเรย ผลลพั ธท ไ่ี ดจ ะเปนอาเรยใ หมท่ีมีท้ังในอาเรย $array1
และ $array2
$merge = array_merge($array1, $array2);
ฟง กช นั array_merge() เปน ฟง กช นั ในการนาํ อาเรยม ารวมกันและไดผลลพั ธเ ปนอาเรยใหม
$union = array_unique($merge);
ในภาษา PHP นนั้ ไมม ฟี ง กช นั สาํ หรบั Union โดยตรงแตเ ราสามารถทาํ ไดโ ดยการใชฟ งกช นั array_unique() สาํ หรบั ตัดคาทซ่ี า้ํ กนั
ออกไปในอาเรย $merge ที่ไดจากการทํางานของฟงกชัน array_merge()
$difference = array_diff($array1, $array2);
ฟง กช นั array_diff() เปน ฟง กชันในการหาผลตา งของอาเรยโ ดยเอาอากิวเมนตต วั แรก $array1 และลบดวยอากวิ เมนตต ัวตอ ไป
และฟง กช นั display_array() เปน ฟงกชันทเี่ ราไดเ ขียนขน้ึ สาํ หรับแสดงขอมลู ในอาเรยส ําหรับตัวอยา งน้ี

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

73

Intersect:
1, 2, 5,
Merge:
1, 2, 4, 5, 6, 7, 1, 2, 3, 5, 8, 9,
Union:
1, 2, 4, 5, 6, 7, 3, 8, 9,
Difference:
4, 6, 7,
Unique:
A, B, C,
น่เี ปน ผลลพั ธข องโปรแกรมจากการทาํ งานของฟง กชนั เซตของอาเรย
ฟง กช ันท่ีเราไดก ลาวมาดังกลา วน้ัน ไมไดม แี คเพยี งสองพารามิเตอร แตมนั อาจจะมีตัง้ แตหนึ่งหรือหลายพารามเิ ตอรย กเวนฟงกช นั
array_unique()
array_intersect($array1);
array_intersect($array1, $array2, $array3, ...);
น่เี ปนตวั อยางการใชง านในการสงในจาํ นวนอากวิ เมนตทีแ่ ตกตา งกัน

ฟงกชนั หาคา ท่ีไมซา้ํ กันในอาเรย

ในภาษา PHP มีฟง กช นั ใหค ุณสามารถหาคาทไ่ี มนับกนั และนับคาเหลา นัน้ ได นเี่ ปน ตัวอยา งการใชงาน
<?php
$chars = ["A", "B", "A", "C", "C", "D", "D", "D"];
$unique = array_unique($chars);
$count_value = array_count_values($chars);
echo "Unique:\n";
print_r($unique);
echo "Count value:\n";
print_r($count_value);
?>
ฟง กชนั array_unique() สาํ หรับหาคาทไี่ มซา้ํ กันในอาเรย ผลลัพธท ไี ดจะเปน อาเรยใหมท่ีมีคา ไมซาํ้ กัน และฟง กช นั
array_count_values() เปนฟง กชนั สําหรับนบั จํานวนสมาชกิ ท่ีซํา้ กนั ในอาเรย ผลลัพธท ่ีไดจะเปนอาเรย Key value ท่ีมีคียเปน คา
ของขอ มูล และมีคา เปน จาํ นวนทพี่ บในอาเรยต น ฉบับ

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

74

Unique:
Array
(

[0] => A
[1] => B
[3] => C
[5] => D
)
Count value:
Array
(
[A] => 2
[B] => 1
[C] => 2
[D] => 3
)
นเ่ี ปนผลลัพธก ารทํางานของโปรแกรมสําหรับตวั อยา งการใชฟงกช ันทง้ั สอง

ฟงกช นั range() สรา งอาเรยลาํ ดบั ของตัวเลข

ฟงกชนั range() เปน ฟง กชนั สาํ หรบั สรา งอาเรยของตวั เลขแบบเรียงลําดบั กัน โดยมีการเพิ่มขน้ึ หรือลดลงในคา ที่คงท่ี
ยกตวั อยางเชน เราตองการสรา งอาเรยของตวั เลข 1 - 10 มาดูตวั อยา งการใชงานของฟงกชนั ในภาษา PHP
<?php
$number1 = range(1, 10);
echo "number1: ", implode(" ", $number1), "\n";
$number2 = range(1, 10, 2);
echo "number2: ", implode(" ", $number2), "\n";
$number3 = range(0, 1, 0.2);
echo "number3: ", implode(" ", $number3), "\n";
$number4 = range(10, -5, -1);
echo "number4: ", implode(" ", $number4), "\n";
$alphabets = range('A', 'Z', 1);
echo "alphabets: ", implode(" ", $alphabets), "\n";
?>
ในตวั อยาง เปน การสรา งอาเรยโ ดยการใชฟ ง กชัน range() โดยท่อี ากวิ เมนตตัวแรกเปนคาเริ่มตนของคาในอาเรย ตวั ท่สี องเปน คา
สุดทาย และอากิวเมนตตัวที่สามนน้ั เปน Default argument เปน คาอัพเดทลาํ ดบั ของตวั เลข โดยปกตแิ ลวจะมคี า เปน 1
$alphabets = range('A', 'Z', 1);
นอกจากน้ีฟงกชัน range() ยังสามารถใชกบั ตัวอักษรได

echo "number1: ", implode(" ", $number1), "\n";

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

75

ในตัวอยางเราไดใ ชฟ ง กชัน implode() ในนาํ ขอมูลในอาเรยม าสรา งเปน String ทคี่ ันดว ย Space " " ซึ่งมันงายกวากอ นหนา ท่เี ราใช
คาํ สง่ั foreach ในการวนอานคา ในอาเรยเ พือ่ แสดงผล
number1: 1 2 3 4 5 6 7 8 9 10
number2: 1 3 5 7 9
number3: 0 0.2 0.4 0.6 0.8 1
number4: 10 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5
alphabets: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
นีเ่ ปนผลลัพธก ารทํางานของโปรแกรมในการใชฟ ง กชัน range()

ฟงกชันเพมิ่ และลบสมาชกิ ในอาเรย

ในภาษา PHP คณุ สามารถเพ่มิ และนาํ ขอ มลู ออกจากอาเรยด ว ยฟงกช นั array_push() array_pop() array_unshift() และ
array_shift() ซง่ึ มกี ารทาํ งานดังนี้
<?php
$numbers = [1, 3, 5, 7, 8];
array_push($numbers, 10);
foreach ($numbers as $el) {

echo "$el, ";
}
echo "\n";
array_pop($numbers);
foreach ($numbers as $el) {

echo "$el, ";
}
echo "\n";
array_unshift($numbers, -1);
foreach ($numbers as $el) {

echo "$el, ";
}
echo "\n";
array_shift($numbers);
foreach ($numbers as $el) {

echo "$el, ";
}
echo "\n";
?>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

76

ในตัวอยา ง เปนโปรแกรมในการเพ่ิมและนาํ ขอ มลู ออกจากอาเรยดว ยฟง กชันตางๆ ท่ีมใี นภาษา PHP
array_push($numbers, 10);
ฟง กชัน array_push() ใชส าํ หรบั เพิม่ ขอมูลลงไปในตําแหนง สดุ ทา ยของอาเรย ในตวั อยา งเราไดเ พม่ิ 10 ลงไปในอาเรย
array_pop($numbers);
ฟงกชัน array_pop() เปน ฟง กช ันสําหรับนาํ ออกคาสดุ ทา ยในอาเรยแ ละสงคา ดังกลา วกลบั มา เพราะวา เราเพง่ิ จะเพมิ่ 10 ลงไปใน
อาเรยท าํ ใหมันเปน คาสดุ ทา ยท่ถี กู นําออกมา
ท้งั ฟง กชนั array_push() และ array_pop() น้นั เปนฟงกชันทมี่ กี ารทํางานในรูปแบบของ Stack ซึง่ เปนโครงสรางขอ มูลประเภท
หนึ่ง
array_unshift($numbers, -1);
ฟง กช นั array_unshift() เปนฟง กชนั สาํ หรับเพม่ิ ขอ มูลไปยงั ตําแหนง แรกของอาเรย ในขณะท่ีฟง กช นั array_push() เพม่ิ ไปยัง
ตาํ แหนงสุดทาย ในตวั อยางเราไดใ ส -1 เขาไปในตําแหนง แรกของอาเรย
array_shift($numbers);
และสดุ ทายฟง กช นั array_shift() เปนฟงกช ันสาํ หรับนาํ ขอมูลในตาํ แหนง แรกออกจากอาเรยและสง คา ดงั กลา งกลบั มา ในตวั อยา ง -
1 ถูกนําออกเพราะมันอยูต าํ แหนง แรกในอาเรย
สําหรับฟง กช ัน array_push() และ array_unshift() นน้ั คุณสามารถใสอากวิ เมนตเพอื่ เพมิ่ ขอ มลู ไดม ากกวา 1 คา ยกตัวอยา งเชน
array_unshift($numbers, 1, 2, 3) เราไดเ พิ่ม 3 ตวั เลขไปยังตําแหนง แรกของอาเรย
1, 3, 5, 7, 8, 10,
1, 3, 5, 7, 8,
-1, 1, 3, 5, 7, 8,
1, 3, 5, 7, 8,
น่เี ปนผลลพั ธการทํางของโปรแกรม

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

77

ฟงกชันของอาเรย Keys และ Values

ในภาษา PHP นนั้ มีฟงกช ันสําหรบั จัดการกับอาเรย Keys Values เพอื่ อาํ นวยความสะดวก เราจะยกตัวอยา งการใชงานสําหรับ
ฟงกชันท่ีสาํ คญั
<?php

$colors = [
"FFFFFF" => "White",
"FF0000" => "Red",
"FFFF00" => "Yellow",
"008000" => "Green",
"0000FF" => "Blue",
"000000" => "Black"

];

$keys = array_keys($colors);
$values = array_values($colors);

echo "Hex code: ";
foreach ($keys as $el) {

echo "$el ";
}
echo "\n";

echo "Color name: ";
foreach ($values as $el) {

echo "$el ";
}
echo "\n";

?>
ในตวั อยาง เปนการใชงานฟง กชนั ในการแยก Key และ Value ออกจากอาเรย $colors ซึ่งเปน อาเรยแ บบ Keys Values
$keys = array_keys($colors);
ฟง กชัน array_keys() เปน ฟงกช นั ในการแยก Keys จากอาเรยท ีก่ าํ หนด ผลลพั ธท ีไ่ ดจ ะเปนอาเรยใ หมท ่ีประกอบไปดวย Keys
$values = array_values($colors);
สําหรบั ฟง กช ัน array_values() เปน ฟง กชนั ในการแยก Values ออกจากอาเรยท ่กี าํ หนด ผลลพั ธท ีไ่ ดจะเปนอาเรยใหมท่ีประกอบไป
ดว ย Values
Hex code: FFFFFF FF0000 FFFF00 008000 0000FF 000000
Color name: White Red Yellow Green Blue Black
น่ีเปนผลลพั ธก ารทํางานของโปรแกรม ซึ่ง Keys ของอาเรยจ ะเปนรหัสของสีในฐานสิบหก และ Values จะเปนชอื่ ของสี
ตอ ไปเปน การสรางอาเรยแบบ Keys Values ดว ยฟง กชนั array_combine() ซึ่งฟงกช ันนี้มสี องอากวิ เมนตในการทํางาน อากิวเมนต
แรกเปน อาเรยสําหรบั Keys และอากิวเมนตทส่ี องเปนอาเรยส าํ หรบั Values นเี่ ปน ตวั อยางการใชง าน
<?php

$abbr = ["ca", "de", "gr", "ua", "no", "tr"];
$names = ["Canada", "Germany", "Greece", "Ukraine", "Norway", "Turkey"];

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

78

$countries = array_combine($abbr, $names);
print_r($countries);
?>
ในตวั อยาง เรามสี องอาเรยท ่จี ะนาํ มาสรา งเปนอาเรยใ หม อาเรย $abbr นั้นเปนอักษรยอของประเทศทเ่ี ราจะใชเ ปน Key และอาเรย
$names เปนชือ่ ของประเทศซึ่งจะเปน Value
Array
(

[ca] => Canada
[de] => Germany
[gr] => Greece
[ua] => Ukraine
[no] => Norway
[tr] => Turkey
)
นเ่ี ปน ผลลัพธจ ากตัวแปรอาเรย $countries ท่ไี ดส รางจากอาเรยท งั้ สอง

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

79

ฟง กช นั array_walk()

ฟง กช ัน array_walk() น้ันเปน Callback ฟงกชันทีม่ กี ารรบั พารามเิ ตอรเปน Delegates สาํ หรบั การสงทอี่ ยขู องฟง กช นั
ใหก ับฟงกช นั เพอ่ื ทาํ งาน การทํางานของฟง กช ันจะเปนการสง ทกุ คา สมาชกิ ในอาเรยไ ปทาํ ใน Callback ฟง กชัน มาดตู ัวอยา งการใช
งานในภาษา PHP
<?php
function is_prime_number($value){

$prime = true;
for ($i = 2; $i < $value; $i++) {

if ($value % $i == 0 && $i != $value) {
$prime = false;
break;

}
}

if ($prime)
echo "$value is prime number\n";

else
echo "$value is not prime number\n";

}
$numbers = [1, 2, 3, 4, 5, 6, 7, 10, 13, 15, 17];
array_walk($numbers, 'is_prime_number');
// Key value array
function domain_extension($value, $key) {

echo ".$key is an extension for websites in $value\n";
}
$countries = ["ca" => "Canada", "de" => "Germany", "ua" => "Ukraine",
"tr" => "Turkey", "th" => "Thailand"];
array_walk($countries, 'domain_extension');
?>
ในตวั อยาง เปนการทาํ งานของฟงกชัน array_walk() โดยการนําฟงกชันไปใชกับสมาชกิ ทกุ ตัวในอาเรย ฟงกช ันน้มี ีสองพารามิเตอร
คอื อาเรย และชอ่ื ของฟงกชันทตี่ อ งการเรียกใช

array_walk($numbers, 'is_prime_number');
เราไดสง อาเรย $numbers เพอ่ื ไปทํางานในฟงกช ัน is_prime_number() ซ่ึงเปน ฟงกชนั ในการตรวจสอบถา หากตัวเลขเปนจาํ นวน
เฉพาะ ซ่งึ ฟง กชันจะถูกนําไปใชก ับทกุ สมาชิกในอาเรย

array_walk($countries, 'domain_extension');
เราไดสง อาเรยแบบ Key value ไปทาํ งานในฟง กชัน domain_extension() ซ่งึ เปนฟงกชันในการแสดงการใชงานของโดเมนในแต
ละประเทศ ดังนนั้ เราจึงตอ งสรางฟงกช นั ท่ีมีสองพารามเิ ตอรส ําหรบั Key และ Value

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

80

1 is prime number
2 is prime number
3 is prime number
4 is not prime number
5 is prime number
6 is not prime number
7 is prime number
10 is not prime number
13 is prime number
15 is not prime number
17 is prime number
.ca is an extension for websites in Canada
.de is an extension for websites in Germany
.ua is an extension for websites in Ukraine
.tr is an extension for websites in Turkey
.th is an extension for websites in Thailand
นีเ่ ปนผลการทํางานของโปรแกรมสําหรบั การใชง านฟงกชัน array_walk()

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

81

ฟงกชนั ดา นวนั ที่และเวลา

วันทีเ่ รียบงา ย

ที่จาํ เปนตอ งใช format พารามเิ ตอรของ date() ฟง กช ่นั ระบุวธิ ีการจัดรปู แบบวนั ท่ี (or time)
น่คี อื ตัวละครบางตวั ทใ่ี ชกนั ท่วั ไปสาํ หรบั วนั ท่ี:
d - หมายถึงวนั ของเดอื น (01 to 31)
M - หมายถงึ เดือน (01 to 12)
Y - หมายถึงป (in four digits)
ลิตร (lowercase 'L') - หมายถงึ วนั ของสัปดาห
ตัวละครอนื่ ๆ เชน "/", "." หรือ "-" นอกจากนย้ี ังสามารถแทรกระหวางตวั ละครทจ่ี ะเพม่ิ รูปแบบเพม่ิ เติม
ตวั อยางดา นลา งรปู แบบวนั ที่วันน้ใี นสามวิธที ีแ่ ตกตางกนั
ตัวอยาง
<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>

เวลาทเี่ รียบงาย

น่ีคือตัวละครบางตวั ทีใ่ ชกนั ท่ัวไปสําหรับคร้งั :
H - รูปแบบ 12 ชวั่ โมงของช่ัวโมงดวยศนู ยช นั้ นาํ (01 to 12)
ฉัน - นาทีกบั ศนู ยชน้ั นาํ (00 to 59)
s - วนิ าทกี บั ศนู ยชั้นนาํ (00 to 59)
- การเอ็ Ante ตัวพิมพเล็กและโพสตเอม็ (am or pm)
ตัวอยางดานลา ง outputs เวลาปจ จบุ นั ในรูปแบบทีร่ ะบ:ุ
ตัวอยาง
<?php
echo "The time is " . date("h:i:sa");
?>

Parameter format date

d – วันท่ี ( 01 – 31)
D – วัน 3 ตัวอกั ษร ( Mon – Sun)
j – วันท่ีไมมี 0 นําหนา (1 to 31)
l (lowercase ‘L’) – A full textual representation of a day
N – เลขประจําวันในสปั ดาห แบบองั กฤษ เริม่ ตนวันจันทร( 1 จันทร – 7อาทิตย)
S – อกั ษรสองตัวลงทายวันที่ภาษาอังกฤษ (st [first], nd[second], rd, th)
w – เลขประจําสปั ดาหแ บบอเมรกิ ัน เริม่ ตนท่ี 0 (0 อาทติ ย – 6 เสาร)
z – วนั ท่ีใน 1 ป ( 0 -365)
W – เลขท่สี ปั ดาหใน 1 ป (เร่มิ สปั ดาหที่วันจันทร)
F – ชอื่ เดอื นแบบเต็ม (January – December)
m – เดือนท่ี มีเลข 0 นาํ ( 01 – 12)
M – ชือ่ เดือนแบบสนั้ 3 ตวั อักษร( Jan – Dec )
n – เดือนท่ี ไมมี 0 นาํ (1 to 12)
t – จํานวนวนั ในเดอื น

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

82

L – Whether it’s a leap year (1 if it is a leap year, 0 otherwise)
o – The ISO-8601 year number
Y – ป ค.ศ. 4 ดิจติ ( 2010 )
y – ป ค.ศ. 2 ดจิ ติ ( 10 )
a – ตัวหนงั สือตัวเล็ก am , pm (ทเี่ รามักเหน็ พ่หี ร่ังใช)
A – ตวั หนังสอื ตัวใหญ AM , PM
B – Swatch Internet time (000 to 999)
g – เวลาแบบ 12 ชวั่ โมง (1 – 12)
G – เวลาแบบ 24 ช่ัวโมง (0 – 23)
h – เวลาแบบ 12 ชวั่ โมง (01 to 12)
H – เวลาแบบ 24 ช่วั โมง (00 to 23)
i – นาที (00 to 59)
s – วินาที (00 to 59)
e – The timezone identifier (Examples: UTC, Atlantic/Azores)
I (capital i) – Whether the date is in daylights savings time (1 if Daylight Savings Time, 0 otherwise)
O – Difference to Greenwich time (GMT) in hours (Example: +0100)
T – Timezone setting of the PHP machine (Examples: EST, MDT)
Z – Timezone offset in seconds. The offset west of UTC is negative, and the offset east of UTC is positive (-
43200 to 43200)
c – The ISO-8601 date (e.g. 2004-02-12T15:19:21+00:00)
r – The RFC 2822 formatted date (e.g. Thu, 21 Dec 2000 16:01:07 +0200)
U – The seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)

Session และ Cookie ในภาษา PHP

คกุ กีค้ อื อะไร?
คกุ กี้มกั จะถกู นาํ มาใชเพือ่ ระบผุ ูใช คุกกเ้ี ปนไฟลขนาดเลก็ วาเซิรฟเวอรฝง ในเครือ่ งคอมพิวเตอรข องผใู ช แตละคร้ังท่ี

คอมพิวเตอรเครื่องเดียวกนั รองขอหนาเวบ็ เบราวเซอรจะสง คุกกเ้ี กินไป ดวย PHP คณุ ท้งั สองสามารถสรางและเรียกคา คุกกี้

PHP สรา ง / สืบคนคุกกี้

ตวั อยางตอ ไปนสี้ รา งคกุ ก้ที ่มี ีชื่อวา "user" มคี า "John Doe" คุกกีจ้ ะหมดอายหุ ลงั จาก 30 วนั (86400 * 30) "/" หมายความ
วา คกุ ก้ที ี่มีอยูในเว็บไซตท ้ังหมด (มิฉะนั้นเลอื กไดเรกทอรีท่คี ณุ ตองการ)
จากนั้นเราจะเรยี กคาของคกุ กี้ "user" (โดยใชตวั แปรทัว่ โลก $ _COOKIE) นอกจากน้เี รายังใช isset() ฟง กชั่นเพื่อดูวา คุกกจ้ี ะถกู ต้งั :
ตัวอยาง
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

83

echo "Cookie named '" . $cookie_name . "' is not set!";
} else {

echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>
Note: setcookie() ฟงกช ่ันจะตองปรากฏกอน <html> แทก็
Note: คา ของคกุ กท้ี ม่ี ี urlencoded โดยอตั โนมตั เิ มือ่ มีการสงคุกก้ีและถอดรหัสเมือ่ ไดรบั โดยอัตโนมตั ิ (เพ่อื ปองกนั การ URLEncoding ใช
setrawcookie() แทน)

การปรับเปล่ยี นคา คุกก้ี

หากตองการแกไขคกุ กเี้ พ่งิ ตง้ั (again) คุกกี้โดยใช setcookie() ฟง กชั่น:
ตัวอยาง
<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>
<?php
if(!isset($_COOKIE[$cookie_name])) {

echo "Cookie named '" . $cookie_name . "' is not set!";
} else {

echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>
</body>
</html>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

84

ลบคุกกี้

ในการลบคุกกใ้ี ช setcookie() ฟง กช ั่นท่ีมีวนั หมดอายุในอดตี ที่ผานมา:
ตัวอยาง
<?php
// set the expiration date to one hour ago
setcookie("user", "" , time() - 3600);
?>
<html>
<body>
<?php
echo "Cookie 'user' is deleted.";
?>
</body>
</html>

ตรวจสอบวา Cookies จะถูกเปดใชง าน

ตัวอยางตอไปนส้ี รา งสคริปตขนาดเล็กที่จะตรวจสอบวา cookies จะเปด ใชงาน ครง้ั แรกที่พยายามท่ีจะสรา งคุกกท้ี ดสอบกบั setcookie()
ฟง กช ่นั แลวนับตัวแปรอารเรย $ _COOKIE น:้ี
ตวั อยาง
<?php
setcookie("test_cookie", "test" , time() + 3600, '/');
?>
<html>
<body>
<?php
if(count($_COOKIE) > 0) {

echo "Cookies are enabled.";
} else {

echo "Cookies are disabled.";
}
?>
</body>
</html>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

85

การสงคาและรับคา PHP $ _GET, $ _POST และ $ _REQUEST

$ _GET Variable มนั คืออะไร?

ตัวแปร $ _GET ถกู ใชเพื่อดงึ ขอ มลู จากแบบฟอรม ทเี่ ขียนดวย HTML นอกจากน้ีในตัวแปร url $ _GET จะแสดงขอมลู ท่ีถายโดยตวั
แปร $ _GET ตวั อยา งเชนใชต วั อยา งทส่ี องในหนา นจี้ ะปรากฏใน url เปน ? name = 'จะเทากับขอ ความทป่ี อนลงในกลองขอ ความ'
$ _GET มขี อ จาํ กดั เกยี่ วกบั จํานวนขอมลู ที่สามารถสง ได
วธิ ีการใชงาน
กอ นที่คณุ จะสามารถใชตัวแปร $ _GET คุณตอ งมีแบบฟอรม ใน html ทมี่ เี มธอดเทา กับ GET จากนนั้ ใน PHP คณุ สามารถใชตัวแปร
$ _GET เพ่ือรับขอมูลทค่ี ุณตองการ ไวยากรณ $ _GET คือ ($ _GET ['ช่อื ของเขตขอ มูลแบบฟอรม ไปที่น'่ี ))
ตวั อยาง
ไวยากรณ $ _GET
<php?
// แสดงขอ มลู ทไ่ี ดร บั จากชอ งใสช อ่ื ชอ่ื ในแบบฟอรม

($ _GET ['ฟอรม ช่ือไปที่น่ี'])
?>
แบบฟอรม HTML พรอ ม $ _GET
<php?
// จะแสดงขอมลู ท่ีไดร ับจากแบบฟอรมที่เรียกวาชอื่

echo ($ _GET ['name']);
?>
// นีเ่ ปนแบบฟอรม html ที่สรา งกลองขอ มูลเขา และปมุ สง
// วธิ กี ารสาํ หรับฟอรม อยูใ นบรรทัดดานลา ง
<form action = "ช่ือไฟล php ที่มตี ัวแปร ($ _GET []) อยูใ นนัน้ " method = "GET">

ช่อื : <input type = "text" name = "name">
<input type = "สง " value = "สง ">
</ form>

$ _POST มันคืออะไร?

ตวั แปร _TOST $ _POST ใชเพื่อเกบ็ รวบรวมขอ มลู จากแบบฟอรม แต _POST มีความแตกตา งกนั เลก็ นอยเน่ืองจากใน _GET _
แสดงขอ มลู ใน URL และ _POST ไมได ขอ มูลทรี่ ับ $ _POST ไมส ามารถมองเห็นไดก ับผูอนื่ และจํานวนเงินทส่ี ามารถสง ไดไ ม จํากดั
จํานวนนอกจากขนาดสูงสดุ 8MB
วิธกี ารใช?
กอ นท่คี ุณจะสามารถใชต วั แปร $ _POST คุณตอ งมแี บบฟอรมใน html ท่ีมเี มธอดเทา กับ POST จากนัน้ ใน PHP คุณสามารถใชต ัว
แปร $ _POST เพื่อรับขอ มูลท่คี ณุ ตอ งการ ไวยากรณ $ _POST คือ ($ _POST ['ช่อื ของฟลดแบบฟอรมไปท่ีน'่ี ))

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

86

ตวั อยา ง
ไวยากรณ $ _POST
<php?
/ / $ _POST ไดร บั ขอ มลู จากแบบฟอรม

($ _POST ['form name goes here'))
?>
แบบฟอรม html ที่มี $ _POST
<php?
// แสดงขอ มลู ที่ไดรับจากชองใสช ่อื ช่ือในแบบฟอรม
echo ($ _POST ['name']);
?>
// น่เี ปนแบบฟอรม html ที่สรางกลอ งขอ มลู เขาและปมุ สง
// วธิ กี ารสาํ หรบั ฟอรมอยูใ นบรรทดั ดานลาง
<form action = "test.php" method = POST>

ชอ่ื : <br> <input type = "text" name = "name"> <br>
<input type = "submit" value = "สง ">
</ รูปแบบ>

$ _REQUES มันคืออะไร?

ตวั แปร $ _REQUEST เปนตวั แปรทีม่ ีเน้ือหาของตัวแปร $ _GET และ $ _POST และ $ _COOKIE
วธิ กี ารใช?
กอนท่ีคณุ จะสามารถใชต วั แปร $ _REQUEST คณุ ตองมแี บบฟอรม ใน html ที่มเี มธอดเทากับ GET และ POST จากน้ันใน PHP
คุณสามารถใชต ัวแปร $ _REQUEST เพอ่ื รบั ขอมลู ท่คี ุณตอ งการ ขนึ้ อยกู ับสง่ิ ท่ีคุณเขยี นสาํ หรับวธิ ีการในรปู แบบและใช $
_REQUEST ใน php $ _REQUEST จะใช $ _Get ถา GET เขยี นข้นึ สาํ หรบั วิธีนแี้ ละ _REQUEST จะใช $ POST ถาเขียน POST
ในเมธอด ไวยากรณ $ _REQUEST คอื ($ _REQUEST ['ชือ่ ของฟล ดฟอรม ไปทน่ี 'ี่ ))
ตัวอยาง
ไวยากรณ $ _REQUEST
<php?
// วิธนี ี้จะยงั คงเหมอื นเดมิ แตว ิธกี ารในฟอรมจะเปลีย่ นไปตามทค่ี ณุ ตองการจาก GET หรือ POST

($ _REQUEST ['ชื่อฟอรม ไปทีน่ ี่'))
?>
ใช GET สาํ หรับวธิ ีการ
<php?
// แสดงขอมูลทไี่ ดร ับจากชองใสชื่อชอ่ื ในแบบฟอรม

echo ($ _REQUEST ['name']);
?>
// นีเ่ ปนแบบฟอรม html ทีส่ รางกลอ งขอ มลู เขาและปมุ สง
// วิธกี ารสาํ หรับฟอรม อยใู นบรรทัดดา นลา ง
<form action = "test.php" method = GET>

ชื่อ: <br> <input type = "text" name = "name"> <br>
<input type = "submit" value = "สง">
</ form>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

87

ใช POST สาํ หรบั วธิ ีการ
<php?
// แสดงขอ มูลทีไ่ ดรับจากชองใสชือ่ ชอ่ื ในแบบฟอรม

echo ($ _REQUEST ['name']);
?>
// นีเ่ ปน แบบฟอรม html ที่สรางกลอ งขอมูลเขา และปุมสง
// วธิ ีการสาํ หรับฟอรม อยใู นบรรทัดดา นลาง
<form action = "test.php" method = POST>

ช่ือ: <br> <input type = "text" name = "name"> <br>
<input type = "submit" value = "สง ">
</ form>

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

บทที่ 3

MySQl

88

MySQL
MySQL คือ

คอื โปรแกรมระบบจดั การฐานขอมูล ที่พัฒนาโดยบริษทั MySQL AB มหี นาทเ่ี กบ็ ขอมลู อยางเปนระบบ รองรบั คาํ สง่ั SQL
เปน เครือ่ งมอื สาํ หรบั เกบ็ ขอ มูล ทต่ี อ งใชร วมกบั เคร่อื งมอื หรือโปรแกรมอน่ื อยางบูรณาการ เพอ่ื ใหไ ดร ะบบงานทรี่ องรับ ความ
ตอ งการของผใู ช เชน ทํางานรวมกับเครอื่ งบรกิ ารเวบ็ (Web Server) เพื่อใหบรกิ ารแกภาษาสครปิ ตทที่ ํางานฝงเครื่องบริการ
(Server-Side Script) เชน ภาษา php ภาษา aps.net หรือภาษาเจเอสพี เปนตน หรอื ทาํ งานรวมกบั โปรแกรมประยกุ ต
(Application Program) เชน ภาษาวชิ วลเบสกิ ดอทเนต็ ภาษาจาวา หรอื ภาษาซีชารป เปนตน โปรแกรมถูกออกแบบใหสามารถ
ทาํ งานไดบนระบบปฏิบตั ิการทห่ี ลากหลาย และเปน ระบบฐานขอ มลู โอเพนทซอรท (Open Source)ที่ถูกนาํ ไปใชงานมากทีส่ ดุ
Mysql จัดเปนระบบจัดการฐานขอมลู เชิงสัมพนั ธ (RDBMS : Relational Database Management System) ซึง่ เปน ท่นี ิยมใชก นั
มากในปจจุบนั

phpMyAdmin สาํ หรบั จดั การฐานขอมูล MySQL

phpMyAdmin คืออะไร

phpMyAdmin คอื โปรแกรมทถี่ ูกพฒั นาโดยใชภ าษา PHP เพื่อใชใ นการบรหิ ารจดั การฐานขอ มลู Mysql แทนการคยี 
คาํ สง่ั เนอ่ื งจากถา เราจะใชฐ านขอมลู ทเี่ ปน MySQL บางครัง้ จะมคี วามลาํ บากและยงุ ยากในการใชง าน ดงั นน้ั จึงมีเคร่อื งมอื ในการ
จดั การฐานขอมลู MySQL ขนึ้ มาเพอื่ ใหสามารถจดั การ ตวั DBMS ที่เปน MySQL ไดงา ยและสดวกยงิ่ ข้ึน โดย phpMyAdmin ก็ถือ
เปน เคร่ืองมอื ชนิดหนงึ่ ในการจดั การ

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

89

การสรางฐานขอ มลู ใหม

การสรางฐานขอ มลู

1.เขา สหู นา phpMyAdmin เลือกแทบ็ เมนู Databases

2.พมิ พชือ่ Database ทตี่ องการในสวนของ Create Database แลวคล๊ิก Create

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

90

4.ในหนา เมนู Database จะเห็นชอ่ื Database ทเ่ี ราสรา งขึ้นมา เปน การเสรจ็ ส้นิ การสรา ง Database

การสรางตาราง

1.เลอื ก Database ทตี่ องการ ในท่ีน้ีเลือก Database ท่ีชอ่ื rmutto_db

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

91

2. ในสว นของ Create Table
Name : ชื่อตาราง
Number of Columns : จํานวนคอลมั น (ฟลด)
แลว คล๊ิก Go

3. โปรแกรมจะขนึ้ หนาตา งมาใหใ สร ายละเอียดของ Fields
Name : ชือ่ ฟล ด
Type : ประเภทของขอ มลู
Length/Values : จํานวนคา สงู สดุ ของแตละฟล ด
Default : คา เริ่มเตน
Collation : รหัสอกั ขระ
Attributes : คุณสมบัติ
Null : วา ง
Index : คุณสมบตั ขิ องฟล ด (Primary Key)
Comments : การแสดงรายละเอยี ดของฟลด
แลว คลก๊ิ Save บนั ทึกขอมูล

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

92

4. จะเหน็ ชื่อตารางท่เี ราสรา งขึ้นมา

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

93

การตดิ ตอ ฐานขอมลู MySQL ดว ย PHP

สรางไฟล php เพอ่ื ตดิ ตอ ฐานขอ มลู

ทาํ สรา งไฟล connent_db.php ขน้ึ มา ภายใน C:\AppServ\www\bootstrap และทาํ การเขยี ว code ดงั น้ี

นาํ code นไี้ ปใสในหนา index.php
include("connect_db.php");

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

94

การใชคาํ สั่ง insert เพิ่มขอมลู ลงตาราง

1. สร้าง ไฟล์ regis.php ขึ้นมา ภายใน C:\AppServ\www\bootstrap สร้าง from ที่จะใชใ้ นการกรอกขอ้ มูล

2. ทาํ
การ
สร้าง
หนา้

regis
_sav
e.ph
p
เพ่ือ
ทาํ
การ
บนั ทึ

ขอ้ มู


3. นาํ
ช่ือ

หนา้ regis_save.php ไปไส่ใน action="regis_save.php" from ของหนา้ regis.php

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก

95

การใชค าํ สั่ง Select ดงึ ขอมลู จากฐานขอ มลู มาแสดงบนหนาเว็บ

การ Select ขอ มลู 1 ชดุ

1. สร้าง ไฟล์ list.php ขึน้ มา ภายใน C:\AppServ\www\bootstrap สร้าง tabal ท่ีจะใชใ้ นแสดงขอ้ มูล

2. เขียว code เพอ่ื ดึงขอ้ มูลจากฐานขอ้ มูลข้ึนมาแสดง ไวส้ ่วนบนของ table
Code ส่วนบนคือการดงั ขอ้ มูลจาก ฐานขอ้ มลู ในตาราง user_tb โดยมีเง่ือนไขให้ user_id =1

การพฒั นาเวบ็ ไซตห์ น่วยงานอยา่ งมีประสิทธิภาพ

สาํ นกั วทิ ยบริการและเทคโนโลยสี ารสนเทศ มหาวทิ ยาลยั เทคโนโลยรี าชมงคลตะวนั ออก


Click to View FlipBook Version