รายงาน php - know2pro.com

24
PHP PHP คืออะไร PHP แตเดิมยอมาจาก “Personal Home Page” แตตอมาก็เปลี่ยนเปนยอมาจาก “PHP Hypertext Preprocessor” PHP เปนภาษาจําพวก scripting language คําสั่งตางๆจะเก็บอยูในไฟลทีเรียกวาสคริปต (script) และเวลาใชงานตองอาศัยตัวแปลชุดคําสั่ง ตัวอยางของภาษาสคริปก็เชน JavaScript, Perl เปนตน ลักษณะของ PHP ที่แตกตางจากภาษาสคริปตแบบอื่นๆ คือ PHP ไดรับการ พัฒนาและออกแบบมา เพื่อใชงานในการสรางเอกสารแบบ HTML โดยสามารถ สอดแทรกหรือ แกไขเนื้อหาไดโดยอัตโนมัติ ดังนั้นจึงกลาววา PHP เปนภาษาที่เรียกวา server-side หรือ HTML- embedded scripting language เปนเครื่องมือที่สําคัญชนิดหนึ่ง ที่ชวยใหเราสามารถสรางเอกสาร แบบ Dynamic HTML ไดอยางมีประสิทธิภาพและมีลูกเลนมากขึ้น PHP เกิดขึ้นไดอยางไร PHP เกิดในป 1994 โดย Rasmus Lerdorf โปรแกรมเมอรชาวสหรัฐอเมริกาไดคิดคนสราง เครื่องมือที่ใชในการพัฒนาเว็บสวนตัวของเขา โดยเขาใช PHP ในการเก็บขอมูลสถิติผูเขาชมเว็บ ของตนเอง โดยใชขอดีของภาษา C และ Perl ตอมา PHP เวอรชั่นแรกไดถูกพัฒนาและเผยแพรใหกับผูสนใจไปศึกษาในป ค.ศ. 1995ซึ่ง ถูกเรียกวา “Personal Home Page Tool” ซึ่งเปนที่มาของคําวา PHP นั่นเอง ซึ่งในระยะเวลานั้น PHP ยังไมมีความสามารถอะไรที่โดดเดนมากมาย จนกระทั่งถึงเมื่อประมาณกลางป 1995 Rasmus ไดสรางสวนติดตอกับฐานขอมูลชื่อวา Form Interpreter ( FI ) รวมทั้งสองสวน เรียกวา PHP/FI หรือ PHP เวอรชั่น 2 ใหมีความสามารถ จัดการเกี่ยวกับแบบฟอรมขอมูลที่ถูกสรางมาจากภาษา HTML และสนับสนุนการติดตอกับ โปรแกรมจัดการระบบฐานขอมูล mSQL ซึ่งก็เปนจุดเริ่มตนของ PHP มีคนที่เขามาเยี่ยมชมเว็บไซต ของเขาแลวเกิดชอบจึงติดตอขอเอาโคดไปใชบาง และนําไปพัฒนาตอ ในลักษณะของ Open Source ภายหลังมีความนิยมขึ้นเปนอยางมากภายใน 3 ปมีเว็บไซตที่ใช PHP/FI ในติดตอฐานขอมูล และแสดงผลแบบ ไดนามิกและอื่นๆ มากกวา 50000 ไซต นอกจากนี้ในราวกลางป ค.ศ.1997 PHP ไดมีการเปลี่ยนแปลงและถูกพัฒนาจากเจาของเดิม คือ Rasmus ซึ่งพัฒนาอยูคนเดียวมาเปนทีมงาน โดยมีนาย Zeev Suraski และ Andi Gutmans ชาว อิสราเอล มาทําการวิเคราะหพื้นฐานของ PHP/FI ตอมาก็มีเพิ่มเขามาอีก 3 คน คือ Stig Bakken รับผิดชอบความสามารถในการติดตอ Oracle, Shane Caraveo รับผิดชอบดูแล PHP บน Window 9x/NT, และ Jim Winstead รับผิดชอบการตรวจ ความบกพรองตางๆ และไดเปลี่ยนชื่อเปน

Upload: know-mastikate

Post on 28-May-2015

3.074 views

Category:

Education


2 download

DESCRIPTION

รายงาน PHP ประวัติและคำสั่งเบื้องต้น By Know2pro.com

TRANSCRIPT

Page 1: รายงาน PHP - Know2pro.com

PHP

PHP คืออะไร PHP แตเดิมยอมาจาก “Personal Home Page” แตตอมาก็เปล่ียนเปนยอมาจาก “PHP Hypertext Preprocessor” PHP เปนภาษาจําพวก scripting language คําส่ังตางๆจะเก็บอยูในไฟลท่ีเรียกวาสคริปต (script) และเวลาใชงานตองอาศัยตัวแปลชุดคําส่ัง ตัวอยางของภาษาสคริปก็เชน JavaScript, Perl เปนตน ลักษณะของ PHP ท่ีแตกตางจากภาษาสคริปตแบบอ่ืนๆ คือ PHP ไดรับการพัฒนาและออกแบบมา เพ่ือใชงานในการสรางเอกสารแบบ HTML โดยสามารถ สอดแทรกหรือแกไขเนื้อหาไดโดยอัตโนมัติ ดังนั้นจึงกลาววา PHP เปนภาษาท่ีเรียกวา server-side หรือ HTML-embedded scripting language เปนเครื่องมือท่ีสําคัญชนิดหนึ่ง ท่ีชวยใหเราสามารถสรางเอกสารแบบ Dynamic HTML ไดอยางมีประสิทธิภาพและมีลูกเลนมากขึ้น PHP เกิดขึ้นไดอยางไร PHP เกิดในป 1994 โดย Rasmus Lerdorf โปรแกรมเมอรชาวสหรัฐอเมรกิาไดคิดคนสรางเครื่องมือท่ีใชในการพัฒนาเว็บสวนตัวของเขา โดยเขาใช PHP ในการเก็บขอมูลสถิติผูเขาชมเว็บของตนเอง โดยใชขอดีของภาษา C และ Perl

ตอมา PHP เวอรช่ันแรกไดถูกพัฒนาและเผยแพรใหกับผูสนใจไปศึกษาในป ค.ศ. 1995ซ่ึงถูกเรียกวา “Personal Home Page Tool” ซ่ึงเปนท่ีมาของคําวา PHP นั่นเอง ซ่ึงในระยะเวลานั้น PHP ยังไมมีความสามารถอะไรท่ีโดดเดนมากมาย

จนกระท่ังถึงเม่ือประมาณกลางป 1995 Rasmus ไดสรางสวนติดตอกับฐานขอมูลช่ือวา Form Interpreter ( FI ) รวมท้ังสองสวน เรียกวา PHP/FI หรือ PHP เวอรช่ัน 2 ใหมีความสามารถจัดการเกี่ยวกับแบบฟอรมขอมูลท่ีถูกสรางมาจากภาษา HTML และสนับสนุนการติดตอกับโปรแกรมจัดการระบบฐานขอมูล mSQL ซ่ึงก็เปนจุดเริ่มตนของ PHP มีคนท่ีเขามาเยี่ยมชมเว็บไซตของเขาแลวเกิดชอบจึงติดตอขอเอาโคดไปใชบาง และนําไปพัฒนาตอ ในลักษณะของ Open Source ภายหลังมีความนิยมขึ้นเปนอยางมากภายใน 3 ปมีเว็บไซตท่ีใช PHP/FI ในติดตอฐานขอมูลและแสดงผลแบบ ไดนามิกและอ่ืนๆ มากกวา 50000 ไซต นอกจากนีใ้นราวกลางป ค.ศ.1997 PHP ไดมีการเปล่ียนแปลงและถูกพัฒนาจากเจาของเดิมคือ Rasmus ซ่ึงพัฒนาอยูคนเดียวมาเปนทีมงาน โดยมีนาย Zeev Suraski และ Andi Gutmans ชาวอิสราเอล มาทําการวิเคราะหพ้ืนฐานของ PHP/FI ตอมาก็มีเพ่ิมเขามาอีก 3 คน คือ Stig Bakken รับผิดชอบความสามารถในการติดตอ Oracle, Shane Caraveo รับผิดชอบดูแล PHP บน Window 9x/NT, และ Jim Winstead รับผิดชอบการตรวจ ความบกพรองตางๆ และไดเปล่ียนช่ือเปน

Page 2: รายงาน PHP - Know2pro.com

Professional Home Page และไดนําโคดมาพัฒนาใหมเปน PHP เวอรช่ัน 3 ซ่ึงมีความสมบูรณมากขึ้น ตอมาในป ค.ศ.2000 PHP พรอม Zend Scripting Engine และความสามารถท่ีทํางานกับWebserver ยี่หออ่ืนไดนอกเหนือจาก Apache ทําให PHP 4 มีความสมบูรณแบบมากยิ่งขึ้น PHP เวอรช่ันตอไปคือ PHP 5 เริ่มตนออกเวอรช่ันทดสอบ(BETA 1) ตั้งแตกลางป 2003 และพัฒนาเปนตัวเต็มประมาณกลางป 2004 ปจจุบัน(01 June 2007) PHP5 ไดพัฒนามาถึงเวอรช่ัน 5.2.3 แลว ทําไมนักพัฒนาเว็บเลือกใช PHP ความรวดเร็วในการพัฒนาโปรแกรม

เพราะวา PHP เปนโคดแบบ Embended คือ สามารถแทรกรวมกับภาษา HTML ไดอยางอิสระ และหากเราพัฒนาโคดไวในรูปแบบ Class ท่ีเขียนขึ้นเพียงครั้งเดียวแลวเรียกใชงานไดตลอด ทําใหสะดวกและรวดเร็วตอการพัฒนาโปรแกรมตางๆ

PHP เปนโคดแบบ Open Source คําวา Open Source วาไปแลวก็มีความหมายเหมือนกับของฟรีนั่นเองครับ เนื่องจาก PHP มีกลุมของผูใชงานอยูเปนจํานวนมากท่ัวโลก และมีเว็บไซตอยูเปนจํานวนมากท่ีเปนแหลงรวบรวมSourceCode หรือจะเปนบทความตางๆทําใหผูใชมือใหมๆหรือผูท่ีตองการศึกษาสามารถหาSourcecodeมาเปนแนวทางในการพัฒนาโปรแกรมไดงายขึ้น

การบริหารหนวยความจํา(Memory Uasge) มีการใชงานหนวยความจําท่ีดี กลาวคือ PHP จะไมเรียกใชงานหนวยความจําตลอดเวลา ทําให Server ไมจําเปนตองมีทรัพยากรมากนัก

อิสระตอระบบปฏิบัติการ เว็พแอพพลิเคช่ันท่ีถูกสรางขึ้นมาสามารถท่ีจะรันไดหลายระบบปฏิบัติการ ไมวาจะเปน Unix, Linux หรือ Windows เปนตน .

Page 3: รายงาน PHP - Know2pro.com

องคประกอบของภาษา PHP ในสวนนี้ผมจะกลาวถึงโครงสรางภาษา PHP ซ่ึงเราตองเรียนรูกันกอนท่ีจะเขาไปถึงในสวนของการเขียนคําส่ัง โดยเฉพาะในสวนของการกําหนดตัวแปร การเลือกเง่ือนไข คําส่ังทําซํ้า คําส่ังวนรอบ คําส่ังคํานวณ การเลือกเง่ือนไข ซ่ึงเปนส่ิงท่ีเราตองใชอยูประจํา โครงสรางพื้นฐานของ PHP (Basic Syntax)

รูปแบบการเขียน PHP เขียนได 4 แบบดังตัวอยาง ท่ีนิยมคือแบบท่ี 1 และ 2 แบบท่ี 3 ใชงานคลายกับ Java script สวนแบบท่ี 4 ตัว tag <% จะเหมือนกับ ASP โดยเม่ือรันจะไดผลลัพธเหมือนกัน และสามารถแทรกลงในสวนของภาษา HTML สวนใดก็ได

1.การเขียนโคดในรูปแบบภาษา SGML จะมีรูปแบบดังนี ้

<? คําส่ังในภาษา PHP ; ?>

2. การเขียนโคดเพ่ือใชรวมกับภาษา XHTML หรือ XML (แตสามารถใชใน HTML แบบปกติได) จะมีรูปแบบดังนี ้

<?php คําส่ังในภาษา PHP ; ?>

3. การเขียนโคดในรูปแบบ JavaScript จะมีรูปแบบดังนี ้

<Script Language="php"> คําส่ังในภาษา PHP ; </Script>

4. การเขียนโคดในรูปแบบ ASP จะมีรูปแบบดังนี ้

<% คําส่ังในภาษา PHP ; %>

Page 4: รายงาน PHP - Know2pro.com

* สําหรับรูปแบบท่ี 4 จะใชไดกับ PHP 3.0.4 ขึ้นไป และจะตองไปแกไฟล php.ini ในโฟลเดอร C:\WINDOWS เสียกอนโดยให asp_tags มีคาเปน On

การเขียนสคริปต PHP ในรูปแบบใดก็ตามจะตองมีเครื่องหมาย semicolon ( ; ) ลงทาย

คําส่ังเสมอเหมือนกับการเขียนภาษา C กับภาษา Perl และคําส่ังหรือฟงกช่ันในภาษา PHP จะเขียนดวยตัวพิมพเล็กหรือพิมพใหญก็ได ( case-insensitive ) การจบ statement หรือส้ินสุด script เราจะปดทายสคริปตดวยแท็ก ( ?> ) และคําส่ังสุดทายในสคริปตนั้นจะลงทายดวย semicolon ( ; ) หรือไมก็ไดเพราะจะถูกปดดวยแท็ก ( ?> ) อยูแลว นอกจากรูปแบบแลว การวาง code ผสมกับ HTML ก็เปนวิธีหนึ่ง

<html> <head> <title>Example</title> </head> <body> <?php echo "Hi, I'm a PHP script!"; ?> </body> </html>

Comment (การเขียนคําอธิบายโปรแกรม) การเขียนโปรแกรมท่ีมีความยาวและซับซอนมากๆอาจจะทําใหสับสนในภายหลังได วิธีท่ี

นิยมกันก็คือการเขียนคําอธิบายไวทายคําส่ังนั้นๆ หรือท่ีเรียกกันวา comments ใน PHP จะสามารถเขียนในรูปแบบของภาษา C, C++ และ Unix shell-style comments ไดโดยจะไมนํามาประมวลผล จะเห็นแคใน souce code เทานั้น รูปแบบ

<?php echo "This is a test"; // comment แบบ C++

Page 5: รายงาน PHP - Know2pro.com

/* แบบนี้เปนการ comments แบบหลายบรรทัด จะใชในกรณ ีท่ีคําอธิบายเยอะ*/ echo "This is yet another test"; echo "One Final Test"; # comment แบบ Unix shell-style ?>

ขอควรระวัง PHP ไมรับ Comment แบบ nest <?php /* echo "This is a test"; /* comment ตัวนี้จะมีปญหา */ */ ?>

คําส่ังแสดงผล

เราสามารถใชคําส่ังเพ่ือแสดงผลได 3 แบบคือ 1. echo 2. print 3. printf

1. คําส่ัง echo จะสามารถแสดงไดหลายประเภท เชน

<?php echo " ทดสอบการใชคําส่ัง echo "; ?>

นี่เราลองมาดูความสามารถอีกอยางของคําส่ัง echo กันคือความสามารถในการแยกนิพจน หรือคาตัวแปรได โดยจะใชเครื่องหมาย , คั่น

<?php echo " ทดสอบการใชคําส่ัง echo<br> " ;

Page 6: รายงาน PHP - Know2pro.com

echo " <b>10+20 = " , 15+15 , "</b>" ; ?>

สังเกตคําส่ัง echo "<b> 10+20 = " , 15+15 , "</b>" ; ผมไดใชเครื่องหมาย , คั้นระหวาง "<b> 10+20 =" และ "</b>" ไวเพ่ือใหโปรแกรมแยกสวนท่ีเราตองการใหมันแสดงออกทางหนาแบบธรรมดากับสวนท่ีเราตองการใหโปรแกรมทําการคํานาณใหเรานั้นคือ 15+15 เม่ือคํานวณแลวจะไดคา 30 โปรแกรมจะนะคาท่ีไดจากการคํานวณมาแสดงแทน สวนแท็ก <br> และ <b>...</b> นั้นเปนแท็ก HTML ธรรมดาซ่ึงผมใสไวเพ่ือทําใหการแสดงผลสวยงามขึ้น

<?php echo "ทดสอบการใชคําส่ัง echo " ; echo " 10+20 = " , 15+15 ; ?>

2. คําส่ัง print <?php print " ทดสอบการใชคําส่ัง print " ; ?>

3. คําส่ัง printf

ในการใชคําส่ัง printf เราจะตองทราบชนิดของขอมูลท่ีเราตองการแสดงออกมาวาเปนชนิดใด เราจะไดกําหนดคาลงไปถูงตองดังนี ้

%d ตัวเลข %o เลขฐานแปด %c ขออักษร ( 1 ตัว ) %s ขอความ %f ทศนิยม <?php printf ( " 15+15 = %d <br> " , 15+15) ; printf ( " 20/3 = %d <br> " , 20/3 ) ; printf ( " 20/3 = %f <br> " , 20/3 ) ; ?>

Page 7: รายงาน PHP - Know2pro.com

สังเกตคําส่ังท่ี 2 และ 3 ใหดีนะครับ เราไดใชตัวคํานวณเหมือนกันแตกําหนดชนิดของขอมูลไมเหมือนกัน โดยคําส่ังท่ี 2 ผมไดกําหนดชนิดขอมูลเปน %d แตในคําส่ังท่ี 3 ไดกําหนดชนิดเปน %f ผลท่ีไดก็จะแตกตางการกันครับ

String แบงตามลักษณะตัวปดแบงออกเปน 3 แบบคือ • single quoted • double quoted • heredoc syntax (ไมอธิบาย)

single quoted ตัวแปร ท่ีอยูภายใต single quoted ถือเปนขอความดวย

echo ’this is a simple string’; echo ’You can also have embedded newlines in strings, like this way.’; echo ’Arnold once said: "I\’ll be back"’; // output: ... "I’ll be back" echo ’Are you sure you want to delete C:\\*.*?’; // output: ... delete C:\*.*? echo ’Are you sure you want to delete C:\*.*?’; // output: ... delete C:\*.*? echo ’I am trying to include at this point: \n a newline’; // output: ... this point: \n a newline

double quoted การใช double quoted สามารถใชรวมกับ escaped characters ไดดังตาราง Escaped characters sequence meaning \n linefeed (LF or 0x0A (10) in ASCII) \r carriage return (CR or 0x0D (13) in ASCII) \t horizontal tab (HT or 0x09 (9) in ASCII) \\ backslash

Page 8: รายงาน PHP - Know2pro.com

\$ dollar sign \" double-quote \[0-7]{1,3} the sequence of characters matching the regular expression is a character in

octal notation \x[0-9A-Fa-f]{1,2}

the sequence of characters matching the regular expression is a character in hexadecimal notation

ขอควรระวังในการใช งาน $beer = ’Heineken’; echo "$beer’s taste is great"; // works, "’" is an invalid character for varnames echo "He drunk some $beers"; // won’t work, ’s’ is a valid character for varnames echo "He drunk some ${beer}s"; // works Simple syntax $fruits = array( ’strawberry’ => ’red’ , ’banana’ => ’yellow’ ); echo "A banana is $fruits[banana]."; echo "This square is $square->width meters broad."; echo "This square is $square->width00 centimeters broad."; // won’t work, // for a solution, see the complex syntax. Complex syntax $great = ’fantastic’; echo "This is { $great}"; // won’t work, outputs: This is { fantastic} echo "This is {$great}"; // works, outputs: This is fantastic echo "This square is {$square->width}00 centimeters broad."; echo "This works: {$arr[4][3]}"; echo "This is wrong: {$arr[foo][3]}"; // for the same reason // as $foo[bar] is wrong outside a string. echo "You should do it this way: {$arr[’foo’][3]}"; echo "You can even write {$obj->values[3]->name}"; echo "This is the value of the var named $name: {${$name}}";

Page 9: รายงาน PHP - Know2pro.com

ตัวอยางการใชงาน String <?php $str = "This is a string"; /* การกําหนดคาใหกับ string. */ $str = $str . " with some more text"; /* ตอขอความกับตัวแปร */ $str .= " and a newline at the end.\n"; /* ตอขอความกับตัวแปร อีกรูปแบบหนึ่ง และใช escaped newline. */ /* This string will end up being ’<p>Number: 9</p>’ */ $num = 9;+ $str = "<p>Number: $num</p>"; /* This one will be ’<p>Number: $num</p>’ */ $num = 9; $str = ’<p>Number: $num</p>’; /* Get the first character of a string */ $str = ’This is a test.’; $first = $str{0}; /* Get the last character of a string. */ $str = ’This is still a test.’; $last = $str{strlen($str)-1}; ?>

Variable scope PHP โดยสวนใหญตัวแปรจะเปนแบบ Single scope ดังแสดงตามตัวอยาง

$a = 1; include "b.inc";

ตัวอยาง การใชตัวแปร global และ local

แบบท่ี1 ตัวแปร a มีคาตางกัน $a = 1; /* global scope */ Function Test () { echo $a; /* reference to local scope variable */

Page 10: รายงาน PHP - Know2pro.com

} Test (); แบบท่ี 2 การใชตัวแปร a และ b $a = 1; $b = 2; Function Sum () { global $a, $b; $b = $a + $b; } Sum ();

echo $b; Iderntification and Data Type การกําหนดตัวแปรและชนิดของขอมูล (Type) ในภาษา PHP จะเหมือนกับภาษาระดับสูงอ่ืนๆ คือมีการกําหนดตัวแปร ซ่ึงวิธีการกําหนดตัวแปรใน PHP นั้นจะใชเครื่องหมาย $ ดังนี ้ $a = 1234; #ตัวอยางท่ี 1 $b = -1234 #ตัวอยางท่ี 2 ประโยชนสวนหนึ่งของการประกาศตัวแปรคือใชสําหรับเก็บคาของอมูลช่ัวคราวในการกระทําตางๆ ซ่ึงขอมูลท่ีตัวแปรสามารถเก็บได จะมีท้ังตัวเลข ตัวอักษร ดังตารางตอไปนี ้ ประเภทของตัวแปร คําอธิบาย Integers เก็บขอมูลตวัเลขท่ีเปนจํานวนเต็มเชน 236, -256 Floating point numbers เก็บขอมูลตัวเลขท่ีมีจุดทศนิยมเชน 1.236, -0.268 Strings เก็บขอมูลท่ีเปนตัวอักษร ขอความเชน "Hi", "Hello", "Year 1979" Arrays เก็บขอมูลท่ีเปนชุด หรือกลุมขอความ Objects เก็บขอมูลในลักษณะของการเรียกใชเปน Class Object หรือ Function Type juggling เก็บขอมูลในลักษณะท่ีขึน้อยูกับตัว Operator

Page 11: รายงาน PHP - Know2pro.com

การใชงาน Integers $a = 567; เปนจํานวนเต็มบวก $b = -956; เปนจํานวนเต็มลบ $c = 01236; เปนเลขฐาน 8 $d = 0x12F; เปนเลขฐาน 16 ในการกําหนดตัวแปรในลักษณะของ Integers เราสามารถกําหนดเปนเลขฐานไดได 3 เลขฐานคือ ฐาน 10, ฐาน 8, ฐาน 16 ดังนี ้ ฐาน 10 คือตัวเลขท่ีใชท่ัวไป ฐาน 8 คือตัวเลขท่ีมีตั้งแต 0-7 ในการกําหนดใหเปนเลขฐาน 8 นั้นจะใหขึ้นตนดวยเลข 0 อยางเชน กําหนดตัวแปร เปน 0123 จะมีคาเทากับ 83 ในเลขฐาน 10 ฐาน 16 คือตัวเลขตั้งแต 0-9 และอักษร A-F แทนตัวเลข 10-15 การกําหนดใหเปนเลขฐาน 16 คือใหขึ้นตนดวย 0x Floating point numbers $a = 1.356 $b = 1.3e6 ใชกําหนดตัวเลขในรูปแบบทศนิยม และเลขยกกําลัง ดังเชน 1.3e6 จะหมายความวา 1.3 คูณ 10 ยกกําลัง 6 Strings การใชงาน String จะใชในการเก็บขอมุลท่ีเปนคาคงท่ี เชนขอความตางๆ ในการกําหนดประเภทของขอมูล String จะมีรหัสควบคุมดังนี ้

Page 12: รายงาน PHP - Know2pro.com

รหัสควบคุม คําอธิบาย \n ใชสําหรับขึ้นบรรทัดใหม \r ใชสําหรับใหตัว Cursor ไปอยูตนบรรทัด \t ใชในการเล่ือน Tab \\ ใชในการพิมพเครื่องหมาย \ \$ ใชในการพิมพเครื่องหมาย $ \" ใชในการพิมพเครื่องหมาย " \[0-7]{1,3} ใชกําหนดอักขระใหเปนรหัส ASCII ฐาน 8 \x[0-9A-Fa-f]{1,2} ใชกําหนดอักขระใหเปนรหัส ASCII ฐาน 16 ตัวอยางที่ 1 $a = "PHPThai.Net"; #กําหนดตัวแปร a เก็บขอความ PHPThai.Net $b = $a "site for You"; #กําหนดใหตัวแปร b มีคาเทากับตัวแปร a และตามดวยขอความ site for You echo "$b"; #ส่ังใหพิมพคาในตัวแปร b ออกมา ผลลัพธ PHPThai.Net site for You ตัวอยางที่ 2 $num = 2545; $c = " Year : $num "; $d = ' Year : $num '; echo "$c<br>"; echo "$d"; ผลลัพธ Year : 2545

Page 13: รายงาน PHP - Know2pro.com

Year : $num ภายในเครื่องหมาย ' . . .' คาตัวแปรจะไมมีความหมายจะถือเปนเพียงขอความท้ังส้ิน ตัวอยางที่ 3 $e ="ASPThai.Net Site for You"; $first = $e[0] #เก็บคาของตัวแปร e ในตําแหนงแรกสุด $last = $e[strlen($e) – 1] #เก็บคาของตัวแปร e ในตําแหนงทายสุด echo "$first<br>"; echo "$last"; ผลลัพธ A u ตัวอยางที่ 4 $a = "\", \\, \$"; #กําหนดใหเก็บอักขระพิเศษตาง ๆ$b = "\123, \xad"; #กําหนดใหเก็บอักขระโดยใช ACSII ในฐาน 8 และฐาน 16 echo "$a<br>"; echo "$b"; ผลลัพธ ", \, $ S, ญ Arrays อาเรย คอืการเก็บขอมูลในลักษณะของชุดขอมูล โดยท่ีแตละชุดสามารถจะมีสมาชิกไดหลายตัว และเราสามารถอางถึงสมาชิกในอาเรยนั้นไดโดยใชเครื่องหมาย _[ . . .]

Page 14: รายงาน PHP - Know2pro.com

ตัวอยางการใชงาน อาเรย อาเรย 1 มิต ิ $a[0] = "abc"; #กําหนดใหสมาชิกลําดับท่ี 0 ของอาเรย a เก็บคา abc $a[1] = "def"; #กําหนดใหสมาชิกลําดับท่ี 1 ของอาเรย a เก็บคา def $b["asp"] = 13; #กําหนดใหสมาชิกช่ือ asp ของอาเรย b เก็บคา 13 อาเรยหลายมิต ิ $a[1] = $f; #อาเรยแบบ 1 มิต ิ $a["asp"] = $f; #อาเรยแบบ 1 มิต ิ $a[1][0] = $f; #อาเรยแบบ 2 มิติ $a["asp"][2] = $f; #อาเรยแบบผสม 2 มิติ $a[3]["diaw"] = $f; #อาเรยแบบผสม 2 มิต ิ $a["asp"][2]["diaw"][0] = $f; #อาเรยแบบผสม 4 มิต ิ

Object Object คือการเขียนชุดคําส่ังท่ีเรามักใชงานบอยๆ หรือใชงานในลักษณะพิเศษ เพ่ือความสะดวกในการทํางานอาจจะอยูในรูปแบบของ Class หรือ Function เชน class asp

{ function do_asp () { echo "ASPThai.Net"; }

} $bar = new asp; $bar -> do_asp();

Page 15: รายงาน PHP - Know2pro.com

จากโคดเราไดสราง class asp และมีฟงกช่ันช่ือ do_asp อยูภายในคลาสตอมาเราไดสรางตัวแปร bar ท่ีเปนออบเจกตท่ีเกิดจากคลาส asp ($bar = new asp;) ตัวแปร bar ท่ีเราสรางจากคลาส asp จะมีคุณสมบัติเหมือนคลาส asp คือสามารถใชฟงกช่ัน do_asp ได ($bar -> do_asp();)

Type juggling เปนการเก็บขอมูลในลักษณะท่ีขึ้นกับตัว Operator เชน $asp = 5 + "15 diaw"; $asp จะมีคาเทากับ 20โดยดูจาก Operator เปนเครื่องหมาย + ทําให PHP มองคาท้ัง 2 เปนตัวเลข ตัวอยางการใชงานตัวแปร และตัวแปรระบบ ในการประกาศตัวแปรใน PHP นั้นจะใชเครื่องหมาย $ นําหนาช่ือตัวแปร สวนช่ือตัวแปรจะขึ้นตอนดวยอักษรพิมพเล็กหรือพิมพใหญก็ไดเพราะถือวาเปนอักขระคนละตัว ดังนั้นเวลาเรียกใชก็ระบุช่ือตัวแปรใหตรงกับท่ีตั้งไวก็แลวกัน ท่ีสําคัญคือตองปดทายดวยเครื่องหมาย ; (semi – colon) ตัวอยางที่ 1 จะเปนการประกาศตัวแปรชนิด String ซ่ึงตองอยูภายในเครื่องหมาย " . . ." หรือ ' . . .' <? $a = "ASPThai"; $A = ".Net"; echo "$a$A"; ?> ผลลัพธที่ได คือขอความวา ASPThai.Net ตัวอยางที่ 2 จะเปนการประกาศตัวแปรชนิดตัวเลข Integer ซ่ึงไมจําเปนตองมีเครื่องหมาย " . . . " <?

Page 16: รายงาน PHP - Know2pro.com

$a = 50; $b = 10; $echo $a+$b; ?> ผลลัพธที่ไดคือ ผลรวมของตัวเลข เทากับ 60 นอกจากนี้ยังตัวแปรระบบท่ีเราไมตองประกาศ เพราะมีพรอมอยูแลวใหเราเรียกใช ซ่ึงตารางขางลางนี้เปนตัวแปรท่ีเราสามารถนํามาใชได ช่ือตัวแปร ความหมายและผลลัพธ GATEWAY_INTERFACE เก็บคา CGI Specification เชน CGI/1.1 SERVER_NAME เก็บช่ือ Host ท่ีใชบริการเชน www.aspthai.net SERVER_SOFTWARE เก็บช่ือ Software ท่ีใหบริการในขณะนั้นเชน

Apache/1.3.9 (Unix) PHP/3.0.12 SERVER_PROTOCAL เก็บช่ือของโพรโตคอลท่ีใชในการรับสงขอมูล

เชน HTTP/1.0 REQUEST_METHOD เก็บวิธีการสงขอมูลวาเปนแบบ GET หรือแบบ

POST QUERY_STRING เก็บชุด String ท่ีสงตอทายมากับ URL DOCUMENT_ROOT เก็บคาเสนทางของ Root Directory ท่ีวิ่งไปอาน

ครั้งแรก HTTP_ACCEPT_LANGUAGE ภาษาท่ีใชงานอยูขณะนั้น เชน th HTTP_CONNECTION บอกถึงสถานะภาพการติดตอ เชน Keep –

Alive HTTP_USER_AGENT บอกชนิดของ Browser ท่ีใชงาน REMORT_ADDR คา IP Address ของเครื่อง REMORT_PORT ตรวจสอบหมายเลข Port ของเครื่องผูใชท่ี

ติดตอกับ Web Server ในขณะนั้น SCRIPT_FILENAME บอกถึงเอกสาร PHP ?กําลังแสดงในขณะนั้น

รวมถึง Path ดวย SERVER_ADMIN แสดงคาของผูดูแล Web Server ท่ีไดระบุไวใน

Page 17: รายงาน PHP - Know2pro.com

ไฟล httpd.conf ตรงบรรทัดท่ีเขียนวา ServerAdmin เชน [email protected]

SERVER_PORT แสดงหมายเลข Port ของเครื่องท่ีเปดใหบริการเชน 80

SERVER_SIGNATURE แสดงเวอรช่ันของโปรแกรมท่ีใช, Host ท่ีใหบริการและหมายเลข Port ท่ีเปดใหบริการ เชน IIS5 Server at aspthai.inet.co.th Port 640

PATH_TRANSLATED แสดง Path หรือตําแหนงของ Script SCRIPT_NAME แสดงช่ือเอกสารท่ีกําลังเปดอยูในขณะนั้น ตัวอยางการใชงาน <? echo "$REMOTE_ADDR<br>"; echo "$HTTP_USER_AGENT<br>"; echo "$SERVER_SOFTWARE<br>"; ?> Control Structure ตัวควบคุมการทํางาน ในการเขียนโปรแกรมคอมพิวเตอรนั้น คอมพิวเตอรจะทํางานโดยเรียงลําดับลงมาจากบน – ลงลาง (Top – Down) แตถาเราตองการส่ังใหคอมพิวเตอรทํางานยอยกลับ หรือมีการทํางานซํ้า เราจะตองมีตัวคอบคุมการทํางานดังนี ้

Page 18: รายงาน PHP - Know2pro.com

If . . .Else . . .ElseIf คําส่ัง If เปนคําส่ังสําหรับกําหนดใหโปรแกรมทํางานอยางมีเง่ือนไข โดยเริ่มตนในการตรวจสอบนิพจน วาคาท่ีไดเปนจริงหรือเท็จ และนําคาท่ีไดเปนตัวเลือกวาจะกระทําตามคําส่ังใด ดังตัวอยางตอไปนี ้ ตัวอยางท่ี 1 การใชงาน If ตรวจสอบเง่ือนไขเดียว <? $a = 30; $b = 20; If ($a > $b) { echo " a มากกวา b"; } ?> จากตัวอยางขางตนเปนการตรวจสอบเง่ือนไขเดียวคือ ตัวแปรa มากกวา ตัวแปรb ซ่ึงถาเปนจริงตามเง่ือนไขก็จะพิมพคําวา " a มากกวา b" ออกมาแตถาไมตรงก็จะออกจากคําส่ัง ตัวอยางท่ี 2 การใช If . . . else ตรวจสอบ 2 เง่ือนไข <? $a = 30; $b = 20; If ($a > $b) { echo " a มากกวา b"; } else { echo " a นอยกวา b"; } ?>

Page 19: รายงาน PHP - Know2pro.com

จากตัวอยางขางตนเปนการตรวจสอบเง่ือนไข 2 เง่ือนไขโดยเง่ือนไขหลักจะอยูท่ี หลังคําส่ัง If คือตัวแปรa มากกวา ตัวแปรb ($a > $b) ซ่ึงถาเปนจริงตามเง่ือนไขก็จะพิมพคําวา " a มากกวา b" ออกมาแตถาไมตรงก็จะทําตามคําส่ัง else คือพิมพคา " a นอยกวา b" ตัวอยางท่ี 3 การใชงาน If ซอน If เพ่ือตรวจสอบหลายเง่ือนไข <? $a = 10; $b = 10; If ($a > $b) // ถา $a มากกวา $b ใหพิมพขอความดานลาง { echo "a มีคามากกวา b"; } elseif ($a == $b) // ถา $a เทากับ $b ใหพิมพขอความดานลาง { echo "a มีคาเทากับ b";} else // ถาไมใชท้ัง 2 กรณีดานบนใหพิมพขอความดานลาง { echo "a มีคานอยกวา b";} ?> จากตัวอยางนี้จะเปนการตรวจสอบโดยใช If และ elseif เขามาชวยเพ่ิมขอกําหนดในการตรวจสอบใหมากขึ้นกวาเดิมอีก โดยท่ีคุณสามารถเพ่ิม elseif ไดเรื่อยๆ แตตองปดทายดวย else ตามตัวอยางดานบน While คําส่ัง while เปนคําส่ังในการวนรอบ โดยจะมีการตรวจสอบเง่ือนไขกอนแลวคอยมีการทํางานตามลําดับ แตถาเง่ือนไขไมเปนตามท่ีกําหนดก็จะออกจากการวนรอบของ while ทันทีดังตัวอยางนี ้ ตัวอยางที่ 1 <? $i = 1;

Page 20: รายงาน PHP - Know2pro.com

while ($I <= 10) { echo $I++; echo "<br>"; }

?> ตัวอยางที่ 2 <? $i = 1;

while ($I <= 10) ; echo "$I <br>"; $I++; endwhile;

?> จากท้ัง 2 ตัวอยางดานบน ผลลัพธท่ีไดจะเหมือนกันคือ แสดงตัวเลขออกมาตั้งแต 1 ถึง 10 แตตางกันท่ีวิธีการเขียนโครงสรางของคําส่ังท่ีเราสามารถเขียนได 2 แบบก็แลวแตจะเลือกใช do . . while คําส่ัง do . . while คือคําส่ังในการวนรอบเชนเดียวกัน แตตางกันตรงท่ีจะมีการทํางานตามคําส่ังท่ีตองการกอน แลวจึงคอยตรวจสอบเง่ือนไขทีหลัง ซ่ึงถาเง่ือนไขเปนตามท่ีกําหนด ก็จะวนรอบขึ้นมาทํางานตามคําส่ังท่ีตองการใหม แตถาเง่ือนไขไมตรงกับท่ีกําหนด ก็จะออกจากการวนรอบทันที ดังนี ้ ตัวอยางท่ี 1 หาผลบวกของตัวเลขตั้งแต 1 ถึง 10 <? $i = 1; $total = 0; do { // เขาสูเง่ือนไขของ do $total = $total + $i; // ให $total มีคาเทากับ ตัวเองบวกดวยคาของ $i ซ่ึงเริ่มตนท่ี 1

Page 21: รายงาน PHP - Know2pro.com

$i ++; // บวกคาของ $i ไปอีก 1 } while ($i <= 10); // ถา $i ยังไมมากกวา หรือ เทากับ 10 ใหวนรอบ do อีกครั้ง echo "ผลลัพธคือ : "; echo $total; ?> ผลลัพธท่ีไดคือ 55 จะเห็นไดวาการเขียนดวย do . . .while จะมีการทําตามคําส่ังกอนท่ีจะตรวจสอบเง่ือนไขซ่ึงตางกับ while ท่ีตรวจสอบเง่ือนไขกอน for คําส่ัง for เปนคําส่ังในการวนรอบอีกคําส่ังหนึ่งแตจะไมมีการตรวจสอบเง่ือนไข เพียงแตทําตามคําส่ังท่ีกําหนดไวแลวเทานั้น ตัวอยางการใชงานคําส่ัง for <? for ($i = 1; $i <= 10; $i++ ) { echo "$i <br>"; } ?> ขอสังเกต : ภายใน for ( . . . ) $i = 1; คือการกําหนดคาเริ่มตน $i <= 10; คือการกําหนดคาจุดส้ินสุด $i++ คือการกําหนดใหเพ่ิมไปทีละ 1 ผลลัพธท่ีไดคือ จะมีการวนรอบเพ่ือพิมพคา 1 ถึง 10

Page 22: รายงาน PHP - Know2pro.com

break คําส่ัง break คือคําส่ังท่ีใชในการหลุดออกจากเง่ือนไข หรือจบเง่ือนไขทันทีดังตัวอยางนี ้ <? $i = 0; while ($I <= 50) { if ($i ==20) { break; } echo "$i <br>"; $i++;

} ?> ท่ีจริงแลวคําส่ังนี้จะตองพิมพคา 0 ถึง 50 ออกมา แตเนื่องจากมีการใชคําส่ัง if มาตรวจเช็คเม่ือถึง 20 ถาเปนจริงก็จะทําคําส่ัง break และหยุดการวนรอบทันทีทําใหผลลัพธท่ีไดออกมาคือ 1 ถึง 19 continue คําส่ัง continue เปนคําส่ังท่ีใชควบคูกับคําส่ังในการวนรอบ โดยเม่ือโปรแกรมทําการรันคําส่ังนี้ จะทําการกระโดดไปเริ่มตนใหมทันที ( ใชกับคําส่ัง for, while) ตัวอยาง เปนการพิมพเลขคูจาก 0 ถึง 50 <? for ($a = 0; $a <= 50; $a++) { if ($a % 2) { continue } //เปนเลขคี่กระโดดไปเริ่มตนใหม echo "$a <br>"; //ใหพิมพเลขคูออกมา } ?> switch คําส่ัง switch เปนคําส่ังในการเลือกเง่ือนไขจํานวนมากๆ ซ่ึงจะสะดวกกวาการใชคําส่ัง if

Page 23: รายงาน PHP - Know2pro.com

ตัวอยาง <? $a = 2; switch ($a) { case 0; echo "a มีคาเทากับ 0"; break; case 1; echo "a มีคาเทากับ 1"; break; case 2; echo "a มีคาเทากับ 2"; break; default; echo "a ไมมีคาเทากับ 0 ,1 หรือ 2"; } ?> จากตัวอยางเรากําหนด ใหคาตัวแปร a มีคาเทากับ 2 ดังนั้นการทํางานของคําส่ังจะอยูใน case ท่ี 2 include (); คําส่ัง include() เปนคําส่ังในการเรียก PHP Script ท่ีอยูในไฟลอ่ืนเขามาทํางาน โดยสามารถเรียกใชงานภายใตคําส่ังของการวนรอบ ( Loop ) และสามารถท่ีจะนํามาเปรียบเทียบเง่ือนไขการทํางานได ตัวอยางท่ี 1 เรียกใชคําส่ัง include() ภายใตการวนรอบของคําส่ัง for <? $fa = array (‘a.inc’, ’b.inc’, ‘c.inc’, ‘d.inc’); for ($i = 0; $i < count($fa); $++) {

Page 24: รายงาน PHP - Know2pro.com

include $fa[$I]; } ?> จากตัวอยางแรก จะใชอาเรย fa เปนตัวเก็บขอมูลของไฟลท้ังหมด 4ไฟล จากนั้นจะทําการวนรอบเพ่ือเรียกใช (include) ทีละไฟล ตัวอยางท่ี 2 เรียกใชคําส่ัง include() ภายในเง่ือนไขของการเปรียบเทียบ <? $a = 12; if ( $a == 12 ) { include("asp.inc") }else{ include("diaw.inc") } ?> require (); คําส่ังนี้จะเปนคําส่ังในการเรียก PHP Script ท่ีอยูในไฟลอ่ืนเขามาทํางานซ่ึงคลายกับ include เพียงแตสามารถเรียกใชภายใตคําส่ังการวนรอบได (Loop) <?

require (‘header.inc’); ?>