580 likes | 754 Vues
Professional Home Page : PHP. วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์) sobree@skt.ac.th. เนื้อหา. ประวัติของ PHP PHP คืออะไร ทำไม PHP จึงเป็นที่นิยม โครงสร้างของ PHP Language Reference ข้อแตกต่างของ PHP กับ ASP. ประวัติ PHP. PHP ย่อมาจาก Professional Home Page
E N D
Professional Home Page :PHP วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์) sobree@skt.ac.th
เนื้อหา • ประวัติของ PHP • PHP คืออะไร • ทำไม PHP จึงเป็นที่นิยม • โครงสร้างของ PHP • Language Reference • ข้อแตกต่างของ PHP กับ ASP
ประวัติ PHP • PHP ย่อมาจาก Professional Home Page • เริ่มสร้างขึ้นในกลางปี 1994 • ผู้พัฒนาคือ นาย Rasmus Lerdorf • ปัจจุบัน PHP มีการพัฒนามาเป็นรุ่นที่ 4 - Version แรกเป็นที่รู้จักในชื่อว่า Personal Homepage Tools ในปี 1994 ถึงกลางปี1995 - Version ที่สองชื่อว่า PHP/FI ในกลางปี 1995
ประวัติ PHP (ต่อ) - Version 3 เป็นที่รู้จักกันในชื่อว่า PHP3 เริ่มใช้กลางปี 1997 - ปัจจุบัน Version 4 Beta 2 ใช้ชื่อว่า Zend (Zend ย่อมาจาก Ze(ev) + (A)nd(I Gutmans)
รายชื่อของนักพัฒนาภาษา PHP • Zeev Suraski, Israel • Andi Gutmans, Israel • Shane Caraveo, Florida USA • Stig Bakken, Norway • Andrey Zmievski, Nebraska USA • Sascha Schumann, Dortmund, Germany • Thies C. Arntzen, Hamburg, Germany • Jim Winstead, Los Angeles, USA • Rasmus Lerdorf, North Carolina, USA
PHP คืออะไร • เป็นภาษา Script สำหรับแสดงเว็บเพจอย่างหนึ่ง จัดอยู่ในกลุ่ม Server Side Script เช่นเดียวกับ ASP • การทำงานจะแทรกอยู่ในเอกสาร HTML • สามารถ Compile ได้ทั้งบนระบบปฏิบัติการ UNIX, Windows NT, Windows 9x • ความสามารถในการทำงานสูง โดยเฉพาะกับการติดต่อกับ Database เช่น MySQL, mSQL, Sybase และ PostgreSQL เป็นต้น
สิ่งที่ PHP สามารถทำได้ • CGI • Database-enable web page • Database Adabas D InterBaseSolid DBasemSQL Sybase Empress MySQL Velocis FilePro Oracle Unix dbm Informix PostgreSQL
ทำไม PHP จึงเป็นที่นิยม • Open source • No cost implementation – PHP เป็นของฟรี • Server side • Open Source • Crossable Platform • HTML embedded • Simple language
ทำไม PHP จึงเป็นที่นิยม • Efficiency– • XML parsing • Server side • Database module • File I/O • Text processing • Image processing
การทำงานของ PHP • ทำงานบน Server • ทำงานร่วมกับเอกสาร html • สามารถแทรกคำสั่ง PHP ได้ตามที่ต้องการลงในเอกสาร html • ทำงานในส่วนที่เป็นคำสั่งของ PHP ก่อน เมื่อมีการเรียกใช้เอกสารนั้น ๆ • แสดงผลออกทาง Web Browsers
โครงสร้างภาษา PHP • แบบที่ 1 XML style <?php คำสั่งภาษา PHP ?> ตัวอย่าง <?php echo “Hello ! World ! <br>”; echo “I am PHP”; ?>
โครงสร้างภาษา PHP (ต่อ) • แบบที่ 2 SGML style <? คำสั่งภาษา PHP ?> ตัวอย่าง <? echo “Hello ! World ! <br>”; echo “I am PHP”; ?>
โครงสร้างภาษา PHP (ต่อ) • แบบที่ 3 Java Language style <script language=“php”> คำสั่งภาษา PHP </script> ตัวอย่าง <script language=“php”> echo “Hello ! World”; </script>
โครงสร้างภาษา PHP (ต่อ) • แบบที่ 4 ASP Style <% คำสั่งภาษา PHP %> ตัวอย่าง <% echo “Hello ! World ! <br>”; echo “I am PHP”; %>
โครงสร้างของภาษา PHP (ต่อ) • จากตัวอย่าง แบบที่เป็นที่นิยม คือ แบบที่ 1 • ผลที่ได้เมื่อผ่านการทำงานแล้วจะได้ผลดังนี้ Hello ! World ! I am PHP • ข้อสังเกต - รูปแบบคล้ายกับภาษา C และ Perl - ใช้เครื่องหมาย ( ; ) คั่นระหว่างคำสั่งแต่ละคำสั่ง • File ที่ได้ต้อง save เป็นนามสกุล php หรือ php3 เท่านั้น
Language Reference • Comments - เหมือนกับการ Comment ของภาษา C, C++ และ Unix • ตัวอย่าง <?php echo “Hello !”; // การ comment แบบ 1 บรรทัด /* แบบหลายบรรทัด ตั้งแต่ 2 บรรทัดขึ้นไป */ echo “World”; # การ comment แบบ shell-style ?>
คำสั่ง echo • เป็นคำสั่งสำหรับแสดงผลลัพธ์ไปที่โปรแกรม browser • รูปแบบของคำสั่ง echo ข้อความ1 หรือตัวแปร1, ข้อความ2 หรือตัวแปร2, ข้อความ3 หรือตัวแปร3, … • ข้อความ เขียนภายใต้เครื่องหมาย double quote (“ “) หรือ single quote (‘ ‘) • ตัวแปรของภาษา PHP จะขึ้นต้นด้วยเครื่องหมาย $ เสมอ คล้ายกับภาษา Perl
ตัวอย่างที่ 1 intro-1.php <HTML> <HEAD> <TITLE>Example –1</TITLE> <BODY> <? echo "Hi, I'm a PHP script!"; ?> <BODY> </HTML> Hi, I'm a PHP script!
ตัวอย่างที่ 2intro-2.php <HTML> <HEAD> <TITLE> Example –2</TITLE> </HEAD> <BODY> Today’s Date: <? print(Date("l F d, Y")); ?> </BODY> </HTML> Today's Date: Thursday April 06, 2000
ตัวอย่างที่ 3 intro-3.php <HTML> <HEAD> <TITLE> Example –3</TITLE> </HEAD> <BODY> Today’s Date: <? /* ** print today’s date */ print(Date("l F d, Y")); ?> </BODY> </HTML> Today's Date: Thursday April 06, 2000
ตัวอย่างที่ 4 <? $YourName = "Seree"; $Today = date("l F d, Y"); $CostOfLunch = 3.50; $DaysBuyingLunch = 4; ?> <HTML> <HEAD> <TITLE> Example –4</TITLE> </HEAD> <BODY> Today’s Date: <? /* ** print today’s date */ print("<H3>$Today</H3>\n");
ตัวอย่างที่ 4 (ต่อ) /* ** print message about lunch cost */ print("$YourName, you will be out "); print($CostOfLunch * $DaysBuyingLunch); print(" dollars this week.<BR>\n"); ?> </BODY> </HTML>
ตัวอย่างที่ 5 intro-5.php <? echo '<pre>First Paragraph: Corporal Carrot, Ankh-Morpork City Guard (Night Watch), sat down in his nightshirt, took up his pencil, sucked the end for a moment, and then wrote:</pre>'; ?>
First Paragraph: Corporal Carrot, Ankh-Morpork City Guard (Night Watch), sat down in his nightshirt, took up his pencil, sucked the end for a moment, and then wrote:
Data Types • ชนิดของข้อมูลใน PHP มีดังต่อไปนี้ - Integer :ข้อมูลชนิดเลขจำนวนเต็ม เช่น 1, 10, 100, 123 เป็นต้น • floating-point numbers:ข้อมูลชนิดเลขทศนิยม เช่น 1.10, 1.2e-10 เป็นต้น • Single- quoted String:ข้อมูลตัวอักษรเขียนภายใต้เครื่องหมาย single quote • Double-quoted Stringคือ:ชุดข้อมูลตัวอักษรเขียนภายใต้เครื่องหมาย double quote คล้ายกับ single-quoted string แต่มีความซับซ้อนกว่าโดยเราสามารถใช้เครื่องหมาย \ เพื่อเพิ่ม escape sequence หรือ meta characters ในสตริงก์ • Back- quoted String:การใช้ back-quoted strings ใน PHP ไม่ใช่การกำหนดสตริงก์ แต่เป็นการเรียกใช้คำสั่งของระบบ (system command)
ตัวอย่างที่ 6 intro-6.php <? echo '<pre>'; echo `ls *.php`; echo '</pre>'; ?>
ตัวอย่าง <HTML> <HEAD> <TITLE>Figure 1–4</TITLE> </HEAD> <BODY> <FORM ACTION="1–5.php" METHOD="post"> Your Name: <INPUT TYPE="text" NAME="YourName"><BR> Cost of a Lunch: <INPUT TYPE="text" NAME="CostOfLunch"><BR> Days Buying Lunch: <INPUT TYPE="text" NAME="DaysBuyingLunch"><BR> <INPUT TYPE="submit"> </FORM> </BODY> </HTML>
Arrays • มีอยู่ 2 ชนิด คือ แบบ indexed arrays และ แบบ associative arrays • มีทั้ง array แบบ 1 มิติ และ 2 มิติ • ตัวอย่าง indexed arrays 2 มิติ $a[0] = “A”; // แบบ 1 มิติ $a[0][1] = “A,A”; // แบบ 2 มิติ • ตัวอย่าง associative arrays $a[“time”] = “15.55”; $a[“date”][“time”] = “Wed , 15.55”;
ตัวอย่าง 1-5.php3 <? $Today = date("l F d, Y"); ?> <HTML> <HEAD> <TITLE>Figure 1–5</TITLE> </HEAD> <BODY> Today’s Date:
<? /* ** print today’s date */ print("<H3>$Today</H3>\n"); /* ** print message about lunch cost */ print("$YourName, you will be out "); print($CostOfLunch * $DaysBuyingLunch); print(" dollars this week.<BR>\n"); ?> </BODY> </HTML>
<HTML> <HEAD> <TITLE>Figure 1–6</TITLE> </HEAD> <BODY> <H1> <? /* ** get today’s day of the week */ $Today = date("l"); if($Today == "Friday") { print("Thank Goodness It’s Friday!"); } else { print("Today is $Today."); } ?> </H1> </BODY> </HTML>
<HTML> <HEAD> <TITLE>Example–7</TITLE> </HEAD> <BODY> <H1>Today’s Daily Affirmation</H1> Repeat three times:<BR> <? for($count = 1; $count <= 3; $count++) { print("<B>$count</B> I’m good enough, "); print("I’m smart enough, "); print("and, doggone it, people like me!<BR>\n"); } ?> </BODY> </HTML>
Escaped characters \n newline \r carriage \t horizontal tab \\ backslash \$ dollar sign \" double-quote \0nnn any octal byte \xnn any hexadecimal byte \\ backslash
Variable • ไม่ต้องประกาศตัวแปรก่อนการใช้งาน • ไม่ต้องกำหนดชนิดของตัวแปรก่อนการใช้งาน • PHP จะมองจากการใส่ให้กับตัวแปรนั้น ๆ เช่น $X = ‘A12”; // ตัวแปร $X เป็นชนิด string $Y = “123”; // ตัวแปร $X เป็นชนิด string $Z = “ABC”; // ตัวแปร $X เป็นชนิด string $I = 123; // ตัวแปร $I เป็นชนิด integer $J = 1.23; // ตัวแปร $X เป็นชนิด floating-point (หากใช้ “ ” หรือ ‘ ’ กำหนดค่าให้กับตัวแปร PHP จะมองว่าตัวแปรเป็น string ทันที)
Expressions • คือ การ assign ค่าจากทางขวามือมาทางซ้ายมือ ตัวอย่าง $b = ($a = 5) + 1; // ผลที่ได้ $a = 5 และ $b = 6 $b = $a = 5 + 1; // ผลที่ได้ $a และ $b = 6 • มี 2 ชนิดคือ pre-increment และ post-increment pre-increment คือ ++$x โดยที่ $x คือตัวแปรใด ๆ ในการทำงานจะทำการเพิ่มค่าก่อนที่จะ assign ค่าให้ตัวแปร เช่น $a = 5; $b = ++$a; // ผลที่ได้ $a และ $b = 6
Expressions (ต่อ) post-increment คือ $x++ โดยที่ $x คือตัวแปรใด ๆ การทำงานจะ assign ค่าให้ตัวแปรก่อนแล้วจึงเพิ่มค่า เช่น $a = 5; $b = $a++; // ผลที่ได้ คือ $a = 6 และ $b = 5
Expressions (ต่อ) • $first ? $second : $third หมายถึง ถ้า $first เป็นจริง (มีค่ามากกว่า 0) ให้ process $second ถ้า $first เป็นเท็จ (มีค่าเป็น 0) ให้ process $third ตัวอย่าง $a = 1; // กรณีเป็นจริง $b = 2; $c = 2; $a ? $b++ : $c++; // เมื่อ $a = 1 (เป็นจริง) เพิ่มค่า $b เมื่อผ่านการ process จะได้ค่าเป็น $a = 1; $b = 3; $c = 2; (เหมือนเดิม)
Expressions (ต่อ) ตัวอย่าง $a = 0; // กรณีเป็นเท็จ $b = 2; $c = 2; $a ? $b++ : $c++; // เมื่อ $a = 0 (เป็นเท็จ) เพิ่มค่า $c เมื่อผ่านการ process จะได้ค่าเป็น $a = 0; $b = 2; (เหมือนเดิม) $c = 3;
String Operation • PHP มี operator ที่เกี่ยวข้องกับ string 1 ตัวคือ "." • มีวิธีใช้งานดังนี้ ตัวอย่างที่ $a = "Hi ! ";$b=$a .= ”PHP";$b จะมีค่าเป็น Hi ! PHP
Operator Precedence • PHP จะให้ความสำคัญกับลำดับในการดำเนินการของตัวดำเนินการไม่เท่ากัน • ตัวอย่าง 1+6*3 ผลลัพธ์เป็น 19 ไม่ใช่ 21 เพราะ PHP จะให้ความสำคัญกับตัวดำเนินการ * (การคูณ) มากกว่า + (การบวก)์ นั่นคือคูณก่อนแล้วจึงบวก
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP IF • โครงสร้าง if (expr) statement; • การทำงาน PHP จะ execute statement เมื่อ expr เป็นจริง นอกจากนั้นหากต้องการให้ทำมากกว่า 1 statement ก็สามารถทำได้โดยใส่ { } คร่อม statements
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP IF (ต่อ) • ตัวอย่าง if ($x != $y) print "$x is not equal to $y"; ถ้าค่าเริ่มต้นเป็น $x = 1 และ $y = 1 เมื่อ execute คำสั่งแล้วจะไม่มีการแสดงผลใด ๆ ทั้งนี้เพราะเงื่อนไขของ if เป็นเท็จแต่ถ้าหากว่าค่าเริ่มต้นเป็น $x = 10 และ $y = 2 จะได้ผลลัพธ์จากการ execute เป็น 10 is not equal to 2
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP Else • โครงสร้าง if (expr) statement1; else statement2;
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP Else (ต่อ) • โครงสร้าง if (expr) { statement1; statement2; } else{ statement3; statement4; }
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP Else (ต่อ) • ตัวอย่าง if ($x > $y) { print "$x is greater than $y"; } else{ print "$x is not greater than $y"; }จะได้ว่า statement ของ else จะถูก execute ก็ต่อเมื่อเงื่อนไขของ if เป็นเท็จ นั่นคือ $x มีค่าน้อยกว่า หรือ เท่ากับ $y
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP Elseif • โครงสร้าง if (expr1) { statement1; statement2; } elseif (expr2) { statement3; statement4; } else { statement5; }
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP Elseif • การทำงาน • ตรวจสอบเงื่อนไข expr1 ก่อน ถ้าเป็นจริงจะทำ statement1,2 ออก • ถ้า expr1 เป็นเท็จ จึงจะตรวจสอบ expr2 ถ้าเป็นจริงก็จะทำ statement3,4 ถ้าเป็นเท็จก็จะหลุดไปทำ statement5 ของ else
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP If () : … endif; • การใช้ code PHP ควบคุมการแสดง code HTML โดยใช้ IF • โครงสร้าง <?php if (expr): ?> HTML CODE <?php endif; ?> • การทำงาน - ตรวจสอบ expr ถ้าเป็นจริงจะแสดง HTML CODE - เป็นเท็จ ไม่แสดงอะไร
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP If () : … endif; • การใช้ code PHP ควบคุมการแสดง code HTML โดยใช้ else และelseif • โครงสร้าง <?php if (expr1): ?> HTML CODE1 <?php elseif (expr2): ?> HTML CODE2 <?php else: ?> HTML CODE3 <?php endif; ?>
Control Structures คำสั่งที่ใช้ในการควบคุมของ PHP While • โครงสร้าง while (expr)statement • การทำงาน while จะcheck เงื่อนไข expr ก่อนที่จะ process statement ที่อยู่ใน block ของ while