การพัฒนาเว็บไซต์ด้วย PHP
Download
Report
Transcript การพัฒนาเว็บไซต์ด้วย PHP
พืน้ ฐานภาษาสคริปท์ PHP
9022132 - การเขียนโปรแกรมเว็บ
แนะนา PHP (Professional
Home Page)
เป็ นภาษาสคริปตที
่ างานฝั่ง
์ ท
เซิรฟเวอร
์ (Server Side Script)
์
มีลก
ั ษณะการทางานเหมือน ASP,
CGI, JSP
มีรป
ู แบบนาเค้าโครงมาจากภาษา C,
Perl
เป็ น Open Source Software
หลักการทางานของ PHP
Client
Client Side
Browser
Server
HTML
Oracle
Server Side
PHP
PHP
Libraries
Interpreter
MySQL
Access
SQL
Server
ODBC
PostgreSQL
etc.
FoxPro
แท็กของ PHP
<?php .. ?>
<script language=“php”>..</script>
<% .. %>
<? .. ?>
ตัวอย่างการเขียนคาสัง่ PHP
คาสั่ งภาษา PHP ?>
ตัวอยาง
่
<?php
echo “Hello ! World ! <br>”;
echo “I am PHP”;
?>
<?php
คาสังแสดงผล
่
echo;
- สามารถแสดงผลไดหลายตั
ว
้
แปร
print; - แสดงผลไดตั
้ วแปรเดียว
printf (“รูปแบบ”,ขอมู
่ องการ
้ ลทีต
้
แสดงผล);
เครือ
่ งหมาย Single Quote (‘) และ Double
Quote (“)
ใช้สาหรับกาหนดขอมู
้ ลทีเ่ ป็ นสตริง
Single Quote ไมสามารถแทรกค
าของตั
วแปรในสตริง
่
่
Double Quote สามารถแทรกคาตั
่ วแปรในสตริง
Escaped characters
\n
\r
\t
\\
\$
\”
\0nnn
\xnn
\\
8
newline
carriage
horizontal tab
backslash
dollar sign
double-quote
any octal byte
any hexadecimal byte
backslash
Computer Science BUU
ตัวแปร (Variable)
กฏการตัง้ ชือ
่ ตัวแปร
วอักษณ ตัวเลข ขีดลาง
ประกอบดวยตั
่
้
ชือ
่ ตัวแปรจะขึน
้ ตนด
$ แลวตามด
วย
้ วย
้
้
้
ตัวอักษร
ชือ
่ ตัวแปรมีลก
ั ษณะเป็ น Case sensitive
ไมจ
วแปรกอนการใช
่ าเป็ นตองประกาศตั
้
่
้
สามารถเรียกใช้งานตัวแปรไดทั
้ นที แตต
่ อง
้
ระวังเรือ
่ งการ Assign คาให
้กับตัวแปร
่
ตัวอยาง
$name = “Adams”;
่
ค่าคงที่ (Constant)
มีลก
ั ษณะคลายตั
วแปรแตค
สามารถ
้
่ าจะไม
่
่
เปลีย
่ นแปลงได้
การกาหนดชือ
่ คาคงที
ค
่ วรกาหนดเป็ นตัวพิมพ ์
่
ใหญ่
รูปแบบ define(“ชือ
่ คาคงที
”่ ,ขอมู
่
้ ล);
define (‘TIREPRICE’, 100);
ชนิดของข้อมูล (Data types)
Integer – ตัวเลขจานวนเต็ม
Double – ตัวเลขทศนิยม
String – สายอักขระ
Boolean – มูลเชิงตรรกะ(จริง,เท็จ)
Array – ชุดของขอมู
้ ล
Object – อ็อบเจ็กทีถ
่ ก
ู สรางขึ
น
้ มาจากคลาส
้
Casting
การเปลีย
่ นชนิดของตัวแปร
$undecided = 3.14;
$holder = (double) $undecided;
gettype () - การตรวจสอบชนิดของตัวแปร
Operators and Expressions
Assignment
Concatenation
Arithmetic
Combination assignment
Comparison
Operators and Expressions
Assignment operator(=)
ใช้สาหรับกาหนดคาให
่
้กับตัวแปร โดยคาทาง
่
ดานขวาจะถู
กกาหนดให้กับตัวแปรทางดานซ
้
้
้าย
$name = “matt”;
Operators and Expressions
Concatenation Operator (.)
ไม่ ว ่ าชนิ ด ของข้ อมู ล จะเป็ นอะไรจะเป็ นน า
ข้อมูลมาเชือ
่ มกัน โดย .
จะทาเหมือนวา่
ขอมู
่ ามาเชือ
่ มกันนั้นเป็ น String
้ ลทีน
เช่น
$txt = “hello”.”world”;
จะได้ “hello world”
Predefined Variable
ตัวแปรที่ PHP สรางไว
ล
่ ให้สามารถใช้งานได้
้
้ วงหน
่
้ าเพือ
ทันที
$_SERVER
$_GET
$_POST
$_COOKIE
$_SESSION
$_FILES
$_SERVER
HTTP_USER_AGENT
HTTP_HOST
SERVER_SOFTWARE
SERVER_NAME
SERVER_ADDR
SERVER_PORT
REMOTE_ADDR
DOCUMENT_ROOT
SCRIPT_FILENAME
SERVER_PROTOCOL
REQUEST_METHOD
QUERY_STRING
HTTP_REFERER
REQUEST_URI
PHP_SELF
Operators and Expressions
Arithmetic Operator
Operator Name
Example
+
Addition
$a + $b
Subtraction
$a - $b
*
Multiplication
$a * $b
/
Division
$a / $b
%
Modulus
$a % $b
Operators and Expressions
Combination Assignment Operator
Operator Example
Equivalent to
+=
$x += 5
$x = $x + 5
-=
$x -= 5
$x = $x - 5
/=
$x /= 5
$x = $x / 5
*=
$x *= 5
$x = $x * 5
%=
$x %= 5
$x = $x % 5
.=
$x .= “ test”
$x = $x .
“ test”
Operators and Expressions
Comparison Operator
Operator
Name
Example
Result
($x is 4)
==
Equivalence
$x == 5
false
!=
Non-equivalence
$x != 5
true
>
Greater than
$x>4
false
>=
Greater than or
$x>=4
true
equal to
<
Less than
$x<4
false
<=
Less than or
$x<=4
true
equal to
Operators and Expressions
Logical Operator
Operator Name
Result
||
Or
True
Or
Or
True
Xor
Xor
False
&&
And
Example
True || false
True or false
True xor false
True && false
คาสัง่ if
เป็ นคาสั่ งทีใ่ ช้สาหรับการทดสอบเงือ
่ นไขและ
เลือกปฏิบต
ั ต
ิ ามเงือ
่ นไข
เมือ
่ เงือ
่ นไขเป็ นจริง
รูปแบบมีดงั นี้
if ( เงือ
่ นไข ) {
// รายการคาสั่ งทีก
่ าหนดในบล็อคเมือ
่
เงือ
่ นไขเป็ นจริง
}
if
22
คาสัง่ if-else
if-else เป็ นคาสั่ งทีใ่ ช้ในการทดสอบเงือ
่ นไขโดย
จะเลือกปฏิบต
ั ก
ิ ารอยาง
่
หนึ่งถาผลการทดสอบเงื
อ
่ นไขเป็ นจริง และทาอีก
้
่งถาการทดสอบ
อยางหนึ
้
่
ให้คาเป็
ู แบบดังนี้
่ นเท็จ มีรป
if ( เงือ
่ นไข ) {
// รายการคาสั่ งทีก
่ าหนดในบล็อคเมือ
่
เงือ
่ นไขเป็ นจริง
}
else {
23
// รายการคาสั่ งทีก
่ าหนดในบล็อคเมือ
่
คาสัง่ if-else ซ้อน
เป็ นคาสั่ งทีใ่ ช้เลือกการทางานในกรณีทม
ี่ ี
ทางเลือกมากกวา่ 2 ทาง
มีรป
ู แบบดังนี้
if ( เงือ
่ นไข ) {
// รายการคาสั่ งทีก
่ าหนดในบล็อคเมือ
่
เงือ
่ นไขเป็ นจริง
}
elseif {
// รายการคาสั่ งทีก
่ าหนดในบล็อคเมือ
่
เงือ
่ นไขเป็ นเท็จ
}
else {
// รายการคาสั่ งทีก
่ าหนดในบล็อค
24
}
คาสัง่ switch - case
รูปแบบคาสั่ ง
switch ( variable) {
case VALUE1 :
break;
case VALUE2 :
break;
case VALUE3 :
break;
case VALUE n :
break ;
default :
break;
}
25
การทาขัน้ ตอนซา้ หรือวนลูป
การวนลูปหรือสรางลู
ปเพือ
่ ทางาน
้
ซา้ เป็ นส่วนประกอบสาคัญของ
โปรแกรมคอมพิวเตอร ์ ในภาษา PHP ก็จะใช้
โครงสรางเหมื
อนกับภาษาซี
้
้
าสั่ งดังตอไปนี
ประกอบดวยค
่
้
while-do loop
do-while loop
for-loop
26
WHILE
เป็ นคาสั่ งวนลูปทีง่ ายที
ส
่ ุดใน
่
PHP3 โดยทาการงานจะตรวจสอบ
เงือ
่ นไขกอน
ถาเงื
่ นไขเป็ นจริงจะทาคาสั่ งทีอ
่ ยู่
่
้ อ
ในลูป
แตถ
่ นไขเป็ น
่ าเงื
้ อ
เท็จจะออกจากลูป
รูปแบบคาสั่ ง
แบบที่ 1
while(condition) {
// statement block.
27 }
Computer Science BUU
DO...WHILE
คลาย
while loop แตจะท
าการตรวจสอบ
้
่
เงือ
่ นไข ตอนทาย
โดย
้
จะทางานใน do while ลูป อยางน
่
้ อย
1 ครัง้ ตอนเริม
่ ตนแล
วจึ
่ นไข
้
้ งตรวจสอบเงือ
ถาเงื
่ นไขจริงจะวนลูปและออกจากลูปเมือ
่
้ อ
เงือ
่ นไขเป็ นเท็จ
รูปแบบคาสั่ ง
do {
statement ;
} while(condition); Computer Science BUU
28
FOR
คาสั่ ง FOR เป็ นคาสั่ งทางานเป็ นวงรอบ
เมือ
่ จานวนครัง้ ทีก
่ ระทาเป็ นจานวนจากัด และ
เป็ นคาสั่ งวนรอบทีม
่ ค
ี วามซับซ้อนมากขึน
้
รูปแบบคาสั่ ง
for (expr1; expr2; expr3;) statement ;
29
Computer Science BUU
อาร์เรย์ (Array)
คือชุดของขอมู
่ ข
ี นาดเปลีย
่ นแปลงได้
้ ลทีม
เรียกวา่ dynamic array หรือ vector(สาหรับ
อารเรย
์ มิ
์ ตเิ ดียว)
$myarray[]=3;
$myarray[]=1.1;
$myarray[]="abc";
ขนาดจะปรับเปลีย
่ นได้ คือขยายจานวนขอมู
้ ลที่
เก็บอยูภายในอาร
เรย
่
์ ์
ขอมู
วในอารเรย
น
้ ลแตละตั
่
์ ไม
์ จ
่ าเป็ น ตองเป็
้
ขอมู
้ ลชนิดเดียวกัน เช่น อาจจะมีทง้ั จานวนเต็ม
นาไปใช้งานในโปรแกรม
เรากาหนดตัวแปรขึน
้ มาเพือ
่ ใช้เป็ นอารเรย
์
์ เรา
ไมจ
วแปร
่ าเป็ นตองประกาศตั
้
คาของอาร
เรย
ถูกกาหนดให้ตอนที่
่
์ จะ
์
โปรแกรมทางาน (Run time)
การใช้ ตัวแปรอารเรย
ต
าหนดแบบ
์ แบบไม
์
่ องก
้
ขอมู
้ ลประเภทarray() กอน
่
การใช้อาร์เรย์หลายมิติ
(Multidimensional Array)
กาหนดชือ
่ ตัวแปรแลวตามด
วยเครื
อ
่ ง [..][..]
้
้
สาหรับอารเรย
ตแ
ิ ละ [.. ][.. ] [.. ] สาหรับ
์ สองมิ
์
อารเรย
ติ
์ สามมิ
์
$arr_2[1][1]
= 4000; //$arr_2เป็ น
อารเรย
ติ
์ สองมิ
์
$arr_3[1][1][1] = 2000; //$arr_3เป็ น
อารเรย
ติ
์ สามมิ
์
อาร์เรย์แบบเชื่อมโยง (associative
array)
การเก็บขอมู
้จะใช้กับข้อมูลที่
้ ลในอารเรย
์ แบบนี
์
จัดเก็บเป็ นคูๆ่
ใช้ทา lookup table
อาร์เรย์แบบเชื่อมโยง (ต่อ)
$ color_table["red"] = 0xff0000;
$color_table["green"] = 0x00ff00;
$color_table["blue"] = 0x0000ff;
$color_name= "red";
echo "value = ".$color_table[
$color_name]."<BR>\n";
อาร์เรย์แบบเชื่อมโยง (ต่อ)
สรางอาร
เรย
อ
่ มโยงไดโดยใช
้
์ แบบเชื
์
้
้คาสั่ ง
array ()
เราสามารถสรางอาร
เรย
อ
่ มโยงไดโดยใช
้
์ แบบเชื
์
้
้
คาสั่ ง array () ดังนี้
$color_table = array(
"red" => 0xff0000,
"green" => 0x00ff00,
"blue" => 0x0000ff
);
สรางอาร
เรย
อ
่ มโยงเป็ นสองมิต ิ
้
์ แบบเชื
์
เราสามารถสรางอาร
เรย
อ
่ มโยงเป็ นสองมิต ิ
้
์ แบบเชื
์
ได้ เช่น
<?
$countries = array (
"thailand" => array ( "zone" => "Asia", "D_NAME" =>
".th"),
"malaysia" => array ( "zone" => "Asia", "D_NAME" =>
".my"),
"india"
=> array ( "zone" => "Asia", "D_NAME" =>
".in"),
"holland" => array ( "zone" => "Europe", "D_NAME" =>
".nl"),
"france"
=> array ( "zone" => "Europe", "D_NAME" =>
".fr")
);
echo "domain name=".$countries[
"thailand"]["D_NAME"]."<BR>\n";
?>
ฟังก์ชนั ที่เกี่ยวกับตัวแปรอาร์เรย์
ฟังกชั
์ น sizeof
รูปแบบการใช้งาน
int sizeof (array arr);
Foreach
Array
foreach(ตัวแปรอารเรย
์ ์ as ตัวแปร)
{
}
Associative array
foreach(ตัวแปรอารเรย
์ ์ => ตัวแปร)
{
}
Exception
try { // โค้ดทีอ่ าจทาให้เกิด Exception // สามารถ
เขียนโค้ดปนอยูก่ บั โปรแกรมปกติได้
} catch (Exception $e) { // เมือ่ มี Exception
(ข้อผิดพลาด) เกิดขึน
้ ในบรรทัดใดบรรทัดหนึง่
ด้านบน // โค้ดทีอ่ ยูใ่ นส่วน catch จะถูกเรียก
ทางานแทน โดยตัวแปร $e // มีชนิดเป็ น
Exception Object
}
Redirect
เป็ นการยายจากเว็
บเพจปัจจุบน
ั ไปยังเว็บที่
้
ตองการ
ใช้คาสั่ งheader() ซึง่ มีรป
ู แบบดังนี้
้
<?php
header(“location: URL”);
?>
Function
ฟังกชั
่ างานเสร็จสิ้ น
์ นคือส่วนของโปรแกรมทีท
ภายในตัวเอง
มีลก
ั ษณะ
เหมือนกับโปรแกรมยอยสั
บรูทน
ี (subroutine)
่
ภาษา PHP มีชนิดของฟังกชั
์ นทีเ่ ตรียมให้ใช้
งาน 2 ชนิด คือ
Library Function คือ ฟังกชั
่ าษา PHP
์ นทีภ
สรางไว
เรี
ว
้
้ ยบรอยแล
้
้ สามารถเรียกใช้ได้
ทันที
User-defined functions คือฟังกชั
่ ใช
ู้ ้
์ นทีผ
โปรแกรมเขียนขึน
้ เอง ()
ฟังก์ชนั ที่ผใ้ ู ช้โปรแกรมเขียนขึ้นเอง
(User-defined functions)
การสรางฟั
งกชั
้ ใช้เอง มีรป
ู แบบดังนี้
้
์ นขึน
function function_name ([parameterList]) {
รายการชุดคาสั่ ง
...
[return คาที
่ องการส
่ ต
้
่ งกลับ]
}
การส่งค่ากลับของฟังก์ชนั
ฟังกชั
บคืนหรือไมก็
์ นจะให้คากลั
่
่ ได้ ถาต
้ องการ
้
ให้คากลั
บคืนจากการทางานของฟังกชั
่
์ น จะ
ใช้คาสั่ ง return
การเรียกใช้ฟังกชั
างถึ
งชือ
่
์ น ทาไดโดยการอ
้
้
ของฟังกชั
่ องการโดยที
ค
่ าสั่ งทีเ่ รียกใช้นั้น
์ นทีต
้
จะอยูก
อหลังฟังกชั
่ ก
ู เรียกก็ได้
่ อนหรื
่
์ นทีถ
การผ่านค่าพารามิเตอร์ให้กบั ฟังก์ชนั
การผานค
าไปยั
งฟังกชั
่
่
์ นมี 2 วิธ ี
1. Call by values ตัวแปรรับคามาแล
วเกิ
่
้ ด
การเปลีย
่ นแปลงคาจะไม
มี
่
่ การส่งกลับคืน
2. Call by reference การส่งขอมู
้ ลในกรณีนี้
ตัวแปรพารามีเตอรที
ั คาจะต
องน
าหน้าดวย
์ ร่ บ
่
้
้
เครือ
่ งหมาย “&” กรณีนี้จะทาให้ตัวแปรทีท
่ า
ั คาอ
วแปรทีท
่ าหน้าทีร่ บ
ง
่ ่ งคาและตั
หน้าทีส
่
้
่ างอิ
ทีอ
่ ยูของข
อมู
่ มีการเปลีย
่ นแปลง
่
้ ลเดียวกัน เมือ
คาของตั
วแปรพารามีเตอรในฟั
งกชั
่
์
์ นก็จะมีผล
ทาให้คาของตั
วแปรอารกิ
่ ่ งไปให้
่
์ วเมนตที
์ ส
โปรแกรมเปลีย
่ นไปดวย
้
การใช้คาสัง่ include และ require
คาสั่ งทัง้ สองมีไวเพื
่ แทรกเนื้อหาจากไฟลอื
่ ที่
้ อ
์ น
ตองการ
้
โดย คาสั่ ง require จะอานเพี
ยงครัง้ เดียว คือ
่
ไฟลแรก
และจะแทรกไฟลนี
์
์ ้เทานั
่ ้นไปตาม
จานวนครัง้ ทีว่ นลูป ในขณะที่ include
สามารถอานได
ไฟล
ต
นตามจานวนครัง้ ที่
่
้
์ างๆกั
่
ตองการ
้