Transcript Document

้ งต้น :ต ัวแปร ต ัว
PHP เบือ
ดำเนินกำรและนิพจน์
1
รูปแบบข ้อความสงั่ ในภาษาPHP
ั่ ของPHP ต ้องเขียนภายใต ้แท็กเปิ ด
 ข ้อความสง
และแท็กปิ ดของ PHP และปิ ดท ้ายด ้วย
่
เครือ
่ งหมาย semicolon เชน
<?
echo “my program. <BR>” ;
?>
PHP Programming
intr
odu
ctio
n2
Whitespace
ั่ ทีม
 Whitespace เป็ นตัวอักษรหรือข ้อความสง
่ อง
่ งว่างหรือขึน
ไม่เห็น แต่ทาให ้เกิดชอ
้ บรรทัดใหม่
ซงึ่ ประกอบด ้วย carriage return spaceและ tabs
 ภาษา PHP และ HTML จะไม่สนใจ
่
Whitespace เชน
echo “Burapha University”;
echo “Bangsaen”;
เหมือนกับ
echo “Burapha University”;echo “Bangsaen”;
PHP Programming
intr
odu
ctio
n3
Comments
 Commentsคือสว่ นทีผ
่ ู ้เขียนโปรแกรมใชส้ าหรับอธิบาย
รายละเอียดของโปรแกรม เพือ
่ ประโยชน์ในการทาความ
เข ้าใจ เพือความสะดวกเมือ
่ ต ้องการแก ้ไขโปรแกรม
 ตัวแปรภาษาจะมองข ้ามข ้อความทีเ่ ป็ นคาอธิบายการ
 เหมือนกับการเขียน Comment ของภาษา C, C++ และ Unix
 /* แบบหลายบรรทัดตัง้ แต่ 2 บรรทัดขึ้นไป */
 /* แบบหลายบรรทัดตัง้ แต่ 2 บรรทัดขึ้นไป */
 # การ comment แบบ shell-style
 ตัวอย่าง
<?
echo “Hello !”; // การ comment แบบ 1 บรรทัด
/* แบบหลายบรรทัดตัง้ แต่ 2 บรรทัดขึ้นไป */
echo “World”; # การ comment แบบ shell-style
?>
PHP Programming
intr
odu
ctio
n4
คาสงั่ echo
ั่ สาหรับแสดงผลลัพธ์ไปทีโ่ ปรแกรม browser
 เป็ นคาสง
 รูปแบบ
echo ข ้อความ1 หรือตัวแปร1, ข ้อความ2 หรือตัวแปร2, ข ้อความ3
หรือตัวแปร3, …
 ข ้อความ เขียนภายใต ้เครือ
่ งหมาย double quote (“ “) หรือ single
quote (‘ ‘)
 ตัวแปรของภาษา PHP จะขึน
้ ต ้นด ้วยเครือ
่ งหมาย $ เสมอ คล ้ายกับ
ภาษา Perl
PHP Programming
intr
odu
ctio
n5
ตัวแปร (variable)
ื่ ทีเ่ ราตัง้ ขึน
 ตัวแปร เป็ นชอ
้ เพือ
่ ให ้คอมพิวเตอร์
เตรียมทีใ่ นหน่วยความจาไว ้สาหรับเก็บข ้อมูลที่
นาไปประมวลผล
ื่ ตัวแปร
 การตัง้ ชอ
ื่ ตัวแปรในภาษา PHP จะเริม
 ชอ
่ ต ้นด ้วยเครือ
่ งหมาย




dollar ($)
ตัวอักษรตัวแรกต ้องไม่เป็ นตัวเลข
การใชตั้ วพิมพ์เล็กและตัวพิมพ์ใหญ่ไม่เหมือนกัน
ไม่ต ้องประกาศและกาหนดแบบของข ้อมูล (data type)
อย่างเจาะจงเหมือนในภาษาซ ี หรือ ปาสคาล
ตัวแปลภาษาจะจาแนกเองโดยอัตโนมัตวิ า่ ตัวแปร
ดังกล่าว ใชข้ ้อมูลแบบใด ในชว่ งเวลานัน
้ ๆ
PHP Programming
intr
odu
ctio
n6
การกาหนดค่าให้ตวั แปร
ั่ กาหนดค่า
 การกาหนดค่าให ้กับตัวแปรจะใชค้ าสง
(Assigment Statement)
รูปแบบมีดงั นี้
ื่ ต ัวแปร = ค่ำทีเ่ ก็บ ;
$ชอ
$mystring = "Hello World!";
$myinteger = 72;
$myfloat = 3.14;
ั่ แสดงผลเชน
่ echo
 การแสดงค่าตัวแปรใชค้ าสง
PHP Programming
intr
odu
ctio
n7
ต ัวอย่ำง var2-0.php3
<?
$test = 10;
echo $test;
echo "<BR>";
echo "$test <BR>";
ื่ ตัวแปรพร ้อมเครือ
echo "แสดงชอ
่ งหมาย $
<BR>";
echo "$". "test";
?>
PHP Programming
intr
odu
ctio
n8
ต ัวอย่ำง
<?
$x = 10;
$y = $x + 15.5;
echo "$x, $y<BR> \n";
$x = "abc";
echo "$x <BR>\n";
$z = $x + 15.5;
echo "$x, $z <BR>\n";
echo ("100.5" - 16);
echo (0xef + 007);
10, 25.5
abc
abc, 15.5
84.5246
?>
PHP Programming
intr
odu
ctio
n9
ตัวอย่าง
<?
// Assign a value of 46 to a variable
// called $int_page_nummber.
$int_page_number = 46;
echo “$int_page_number\n”;
// Assign a string value to a variable
// called $str_magazine_title.
$str_magazine_title = 'PHP is good!';
46
echo “$str_magazine_title”;
PHP is good!
?>
PHP Programming
intr
odu
ctio
n10
ตัวอย่าง
<?
// Assign a value of 46 to a variable
// called $int_page_nummber.
$int_page_number = 46;
// Increment the page number variable.
$int_page_number = $int_page_number + 1;
echo “$int_page_number\n”;
?>
47
PHP Programming
intr
odu
ctio
n11
ชนิดของตัวแปรในภาษา PHP
 ตัวแปรในภาษา PHP จาแนกได้เป็ น 3 ชนิด คือ
 Scarlar varible
 Array variable
 Object variable
PHP Programming
intr
odu
ctio
n12
Scarlar variable
้ บข ้อมูล ทีเ่ ป็ นจานวนเต็ม
 ตัวแปรสเกลาร์คอ
ื ตัวแปรทีใ่ ชเก็
(Integer), จานวนทศนิยม (floating point)หรือ สตริงก์
(String)
่ 1, 10, 100, 123 เป็ นต ้น
 Integer : ข ้อมูลชนิดเลขจานวนเต็ม เชน
่ 1.10, 1.2e floating-point numbers : ข ้อมูลชนิดเลขทศนิยม เชน
10 เป็ นต ้น
 Single- quoted String : ข ้อมูลตัวอักษรเขียนภายใต ้เครือ
่ งหมาย
single quote
 Double-quoted String คือ: ชุดข ้อมูลตัวอักษรเขียนภายใต ้
เครือ
่ งหมาย double quote คล ้ายกับ single-quoted string แต่ม ี
ั ซอนกว่
้
้ อ
ความซบ
าโดยเราสามารถใชเครื
่ งหมาย \ เพือ
่ เพิม
่ escape
sequence หรือ meta characters ในสตริงก์
PHP Programming
intr
odu
ctio
n13
ตัวอย่าง cal-2.php
<html>
<body>
<?
$b=3;
$h=4;
$area = (1/2) * $b * $h;
echo "<font size=6 face=\"arial\">";
echo "Area is $area<br>";
?>
</body>
</html>
PHP Programming
intr
odu
ctio
n14
ตัวแปรอาร์เรย์ (Array Variables)
้ บข ้อมูลที่
ตัวแปรอาร์เรย์ในภาษา PHP เป็ นตัวแปรทีใ่ ชเก็
เป็ นชนิดเดียวกันหรือต่างชนิดกัน ลักษณะการเก็บจะเป็ นชุด
หรือเป็ นแถวเรียงต่อกัน.. การกาหนดตัวแปรแบบอาร์เรย์ใน
ื่ ของตัว
ภาษา PHP กาหนดโดยเครือ
่ งหมาย $ นาหน ้าชอ
แปรนัน
้
 แบบที่ 1
$arr_zoo[‘perican’] = ‘ Bird with a big beak.’ ;
$arr_zoo[‘cheetah’] = ‘ Fast cat.’ ;
$arr_zoo[‘horse’] = ‘ Four-legged animal.’ ;

PHP Programming
intr
odu
ctio
n15
แบบที่ 2
$arr_names[] = ‘Mitch’ ;
$arr_names[] = ‘Gerry’ ;
$arr_names[] = ‘Tim’ ;
แบบที่ 3
$key
= ‘pelican’ ;
$value
หรือ
$value
= $arr_zoo[$key] ;
= $arr_zoo[pelican] ;
PHP Programming
intr
odu
ctio
n16
ตัวอย่าง array-1.php
<html>
<body>
<?
$arr[0] = "Red";
$arr[1] = "Green";
$arr[2] = "Blue";
$arr[3] = "White";
echo " $arr[0] , $arr[1] ,$arr[2] ,$arr[3] " ;
?>
</body>
</html>
PHP Programming
intr
odu
ctio
n17
Variable Interpolation
ื่ ตัวแปรด ้วยค่าที่
หมายถึงการทีภ
่ าษา PHP สามารถทีจ
่ ะแทนชอ
่
เก็บภายใต ้เครือ
่ งหมาย double-quote เชน
$str_size = “big” ;
echo “Jack was a $str_size man.” ;
ซงึ่ จะได ้ผลลัพธ์เป็ น
Jack was a big man.”
แต่ถ ้ากาหนดเป็ น
$str_size = “big” ;
echo ‘Jack was a $str_size man.’ ;
ซงึ่ จะได ้ผลลัพธ์เป็ น
Jack was a $str_size man.
PHP Programming
intr
odu
ctio
n18
Dynamic Variable Names
ภาษา PHP อนุญาตให ้มีการสร ้าง ตัวแปรแบบ
dynamic โดยในขณะทีโ่ ปรแกรมกาลังรันอยู่ สามารถ
ั ลักษณ์พเิ ศษ
สร ้างตัวแปรใหม่ได ้โดยใชส้ ญ
// store the name of dynamic variable.
$scl_dynamic = ‘str_name’ ;
// assign a value to the dynamic variable.
$$scl_dynamic = ‘John’ ;
echo “\$scl_dynamic = $str_name\n” ;
ซงึ่ จะได ้ผลลัพธ์เป็ น
$scl_dynamic = John
PHP Programming
intr
odu
ctio
n19
การกาหนดค่าคงที(
่ Constants)
ั ลักษณ์ให ้เก็บ
 ในภาษา PHP มีการกาหนดสญ
่ อาจจะเป็ นสตริงก์หรือตัวเลขก็ได ้
ค่าคงที่ เชน
ั่ define() สญ
ั ลักษณ์ท ี่
 กาหนดโดยใช ้ คาสง
กาหนดโดยคาสงั่ define() จะเหมือนกันตัวแปร
ทัว่ ๆไป แต่แตกต่างตรงทีว่ า่ เมือ
่ นิยามแล ้วจะ
เปลีย
่ นแปลงค่าอีกไม่ได ้
PHP Programming
intr
odu
ctio
n20
ต ัวอย่ำง
<HTML>
<HEAD>
<TITLE>Figure 2-7</TITLE>
</HEAD>
<BODY>
<?
define("STANDARD_GREETING", "Hello, World!");
print(STANDARD_GREETING);
?>
</BODY>
</HTML>
Hello, World!
PHP Programming
intr
odu
ctio
n21
ตัวอย่าง
<?
define(PI, 3.141592654);
define(YES, true);
define(NO, false);
define("AUTHOR", "RWS");
echo (PI/3),"<BR>\n";
echo "AUTHOR=".AUTHOR."<BR>\n";
echo "YES=".YES."<BR>\n";
1.0471975513333
AUTHOR=RWS
YES=1
?>
PHP Programming
intr
odu
ctio
n22
การอ่านและแปลงแบบข ้อมูล
ในตัวแปรหรือค่าคงทีแ
่ บบเจาะจง
เราสามารถแปลงแบบข ้อมูลจากแบบหนึง่ ไปยัง
่ แปลงจาก
อีกแบบหนึง่ (type casting) เชน
ข ้อความทีม
่ เี ฉพาะตัวเลขให ้กลายเป็ นเลข
จานวนเต็ม (int) หรือทศนิยม (double, float,
real) หรืออาจจะใชค้ าสงั่ settype()
PHP Programming
intr
odu
ctio
n23
ตัวอย่าง
<?
$x = 30.2;
$y =12.5;
$z = $x + $y;
echo "z= ".$z. "<BR>";
$x = (integer)$x;
$y = (integer)$y;
$z = $x + $y ;
echo "z= ".$z ;
?>
PHP Programming
intr
odu
ctio
n24
การอ่านแบบข ้อมูลของตัวแปรหรือ
ค่าคงที่
ถ ้าต ้องการตรวจว่า ตัวแปรมีข ้อมูลแบบใด เรา
สามารถใชค้ าสงั่ gettype() ได ้ ค่าทีไ่ ด ้จาก
ั ก็จะเป็ น "integer" "double" หรือ
ฟั งก์ชน
"string" เป็ นต ้น
PHP Programming
intr
odu
ctio
n25
ตัวอย่าง
<?
?>
echo gettype(0),”<BR>";
echo gettype(1.1),”<BR>";
echo gettype(""),”<BR>";
echo gettype((1==1)),”<BR>";
$var="abc";
if ( gettype($var)=="string" ) {
echo "this is a string<BR>";
}
PHP Programming
integer
double
string
integer
this is a string
intr
odu
ctio
n26
การใช ้ echo เพือ
่ แสดงข ้อความ
ื่ ของตัว
การพิมพ์คา่ ใดๆทีเ่ ก็บอยูใ่ นตัวแปร ถ ้าชอ
แปรอยูใ่ นสตริงก์ระหว่าง double quote เวลาแสดง
ผลลัพธ์แล ้วจะอ่านค่าของตัวแปรนัน
้ ก่อนแล ้วจึง
แทนทีล
่ งในข ้อความ แต่ถ ้านาหน ้าด ้วย
่
backslash (\) ก็จะไม่มก
ี ารอ่านค่าของตัวแปร เชน
"\$a" จะให ้ผลต่างจาก "$a"
PHP Programming
intr
odu
ctio
n27
ตัวอย่าง
<?
$a=1;
echo "\$a=$a <BR>\n";
$test = "test";
echo "$test$test$test<BR>\n";
echo $test,$test,$test,"<BR>\n";
$a = 1;
$b = 2;
echo $a,"+",$b,"=","$a+$b","<BR>\n";
echo $a,"+",$b,"=",$a+$b,"<BR>\n";
?>
PHP Programming
$a=1
testtesttest
testtesttest
1+2=1+2
1+2=3
intr
odu
ctio
n28
สาหรับข้อความในภาษา PHP เราอาจจะใช้ single qoute แทน double
quote ได้ แต่เวลาใช้งานร่วมกับ echo หรือ print() จะให้ผลต่างกัน ซึง่
สังเกตได้จากตัวอย่างต่อไปนี้
<?
$a = "aaa";
$b = 'bbb';
echo "$a $b<BR>\n";
echo '$a $b<BR>\n';
?>
ผลลัพธ์คอื
aaa bbb
$a $b
PHP Programming
intr
odu
ctio
n29
คาสงั่ print
้
่ เดียวกับคาสงั่ echo แต่คาสงั่
 ใชแสดงค่
าเชน
print นัน
้ สามารถแสดงค่าได ้ครัง้ ละหนึง่ ค่าเท่านัน
้
รูปแบบคาสงั่
print ( “ ข้อควำมทีต
่ อ
้ งกำรแสดง“);
PHP Programming
intr
odu
ctio
n30
ตัวอย่างที่
<?
$Today = date("l F d, Y");
?>
<HTML>
<HEAD>
<TITLE>Example–5</TITLE>
</HEAD>
Today's Date:
<BODY>
Today’s Date:
Tuesday April 04, 2000
<?
, you will be out 0 dollars this week.
/*
** 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>
PHP Programming
intr
odu
ctio
n31
คาสงั่ printf
้
่ เดียวกับคาสงั่ echo และคาสงั่
 ใชแสดงค่
าเชน
print แต่ printf สามารถกาหนดรูปแบบในการ
แสดงผลของข ้อมูลได ้ด ้วย
รูปแบบคาสงั่
printf ( .”รูปแบบข้อมูล”, “ ข้อควำมที่
ต้องกำรแสดง“, …);
PHP Programming
intr
odu
ctio
n32
ตัวอย่าง
<?
$name =”Seree Chinodom” ;
$m1
= 2000 ;
$m2
= 3.1415 ;
$char
= 65 ;
printf(“ Name : %s , m1 = %d , m2 = %8.2f <BR>”, $name,
$m1, $m2) ;
printf(“Character = %c <BR>”, $char) ;
?>
Name : Seree Chinodom , m1 = 2000 , m2 = 3.14
Character = A
PHP Programming
intr
odu
ctio
n33
ตัวดาเนินการ (Operators)
ั ลักษณ์ทจ
 คือสญ
ี่ ะสงั่ ให ้ PHP ดาเนินการกับ
ตัวเลขหรือข ้อความ ตัวดาเนินการบางตัวจะ
ดาเนินการกับตัวทีถ
่ ก
ู กระทา(operand)เพียงตัว
เดียว แต่บางตัวต ้องมีตวั ถูกกระทาสองตัว
PHP Programming
intr
odu
ctio
n34
ตัวดาเนินการคณิตศาสตร์ (Arithematic
Operations)
สัญลักษณ์
+
*
/
%
ชื่อ
ตัวอย่ าง
Addition
$a + $b
Subtraction
$a - $b
Multiplication $a * $b
Division
$a / $b
Modulus
$a % $b
PHP Programming
intr
odu
ctio
n35
การเพิม่ หรือลดค่าของตัวเลขในตัวแปรทีละหนึ่ง
 ใช้เครื่องหมาย ++ และ - - เพือ่ เพิม่ ค่าทีละหนึ่งหรือลดค่าทีละหนึ่ง ดังนี้
$x++
++$x
$x---$x
เพิม่ ค่าขึ้นอีกหนึ่ง
เพิม่ ค่าขึ้นอีกหนึ่ง
ลดค่าลงอีกหนึ่ง
ลดค่าลงอีกหนึ่ง
 วางไว ้ข ้างหน ้า จะเพิม
่ หรือลดค่าตัวแปรก่อน
แล ้งจึงนาค่าในตัวแปรไปดาเนินการ
 วางไว ้ข ้างหลัง จะนาค่าในตัวแปรไปดาเนินการ
ก่อนแล ้วจึงนาตัวแปรไปเพิม
่ หรือลด
PHP Programming
intr
odu
ctio
n36
ตัวดาเนินการสตริงก์ (String Operations)
้
ื่ มข ้อความหลาย
 คือตัวดาเนินการทีใ่ ชในการเช
อ
ข ้อความให ้เป็ นข ้อความเดียว ภาษา PHP มีตวั
ดาเนินการสตริงก์ เพียงตัวเดียวคือจุด (" . ")
่
ดังตัวอย่างเชน
$a = "Hello !";
$b = $a . "World !" ; // $b จะมีคา่ เท่ากับ Hello World !
PHP Programming
intr
odu
ctio
n37
ตัวดาเนินการตรรก
้
 เป็ นตัวดาเนินการทีใ่ ชกระท
ากับค่าข ้อมูลทีม
่ ค
ี า่ ได ้ 2 ค่าคือจริงและ
เท็จ
ั
สญล
ักษณ์ของต ัวดำเนินกำรตรรก
ั ลักษณ์
ื่
สญ
ชอ
ตัวอย่าง
!
Not
! $a
&&
And
$a && $b
||
Or
$a || $b
and
and
$a and $b
or
or
$a or $b
xor
xor
$a xor $b
PHP Programming
intr
odu
ctio
n38
ตัวดาเนินการ Bitwise
้
 เป็ นตัวดาเนินการทีใ่ ชกระท
ากับค่าข ้อมูลใน
ระดับบิตได ้ โดยค่าของข ้อมูลทีเ่ ก็บเป็ น
ิ จะเปลีย
เลขฐานสบ
่ นมาเป็ นเลขฐานสอง 2 ค่า
คือจริงและเท็จ
PHP Programming
intr
odu
ctio
n39
ตัวดาเนินการ Bitwise
สัญลักษณ์
ชื่อ
&
|
~
^
<<
>>
Bitwise And
Bitwise Or
Bitwise Not
Bitwise Xor
Shift left
Shift right
PHP Programming
intr
odu
ctio
n40
ตัวดาเนินการเงือ
่ นไข(Conditional
Operators)
้
คือตัวดาเนินการทีใ่ ชการเปรี
ยบเทียบข ้อมูลเพือ
่
สร ้างเงือ
่ นไข
==
>
>=
<
<=
!=
เท่ากับ
มากกว่า
มากกว่าหรือเท่ากับ
น ้อยกว่า
น ้อยกว่าหรือเท่ากับ
ไม่เท่ากับ
PHP Programming
intr
odu
ctio
n41
The Ternary Operator
 รูปแบบคือ (expr1) ? (expr2) : (expr3)
้ ้ดูท ี่ (expr1) เป็ นจริงหรือเท็จ ถ ้า
 การนาไปใชให
เป็ นจริง (มีคา่ มากกว่า 0) ให ้ ประมวลผล expr2
แต่ถ ้า expr1เป็ นเท็จ (มีคา่ เป็ น 0) ให ้ ประมวลผล
expr3
PHP Programming
intr
odu
ctio
n42
ลาดับการทางานของตัวดาเนินการ
 การบอกให ้ทราบว่าเครือ
่ งหมายนีจ
้ ะมีวธิ ก
ี ารคิดไปทางขวาหรือ
้
่ 1 + 5 * 3 คาตอบทีไ่ ด ้ต ้องเป็ น 16
ทางซายที
แ
่ ตกต่างกัน เชน
้
ไม่ใช ่ 18 ต ้องคิดจากซายไปขวา
เพราะ (" * ") เป็ น Operation ที่
เหนือกว่า (" + ") ดังนัน
้ เวลาทีเ่ ราจะคิดเราต ้องดูกอ
่ นว่าตัว
ั ้ ของ Precedence ตา่ กว่ากัน เพราะเราจะ
ดาเนินการตัวใดมีลาดับชน
คิดอันทีต
่ า่ กว่าก่อน
PHP Programming
intr
odu
ctio
n43
การกาหนดค่าของตัวแปรทีเ่ ป็ นตัวเลขหรือสตริงก์โดยใช ้
assignment operators
 การกาหนดค่า (assignment ) หรือเปลีย
่ นแปลง
ค่าให ้แก่ตวั แปรจะใชตั้ วดาเนินการกาหนดค่า
(assignment operators) ได ้ในหลายๆรูปแบบ
้
ี
เหมือนอย่างทีใ่ ชในภาษาซ
PHP Programming
intr
odu
ctio
n44
นิพจน์ (Expressions)
 คือค่าคงที่ หรือ ตัวแปร หรือการนาเอาค่าคงที่ หรือ
ื่ มด ้วยตัวดาเนินการ
ตัวแปร มาเชอ
 โครงสร ้าง PHP เราจะต ้อง define ให ้นิพจน์เป็ น
"anything that has a value"
PHP Programming
intr
odu
ctio
n45
ตัวอย่าง
<?
for ($index = 1; $index <= 100; $index++) {
if ($index % 10 == 0) {
echo "$index<br>";
}
}
?>
PHP Programming
intr
odu
ctio
n46