1 / 53

ตัวแปร ตัวดำเนินการและนิพจน์

ตัวแปร ตัวดำเนินการและนิพจน์. วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์) sobree@skt.ac.th. ตัวแปร ( variable). ตัวแปร เป็นชื่อที่เราตั้งขึ้น เพื่อให้คอมพิวเตอร์เตรียมที่ในหน่วยความจำไว้สำหรับเก็บข้อมูลที่นำไปประมวลผล ชื่อตัวแปรในภาษา PHP จะเริ่มต้นด้วยเครื่องหมาย dollar ($)

Download Presentation

ตัวแปร ตัวดำเนินการและนิพจน์

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ตัวแปร ตัวดำเนินการและนิพจน์ วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์) sobree@skt.ac.th

  2. ตัวแปร (variable) • ตัวแปร เป็นชื่อที่เราตั้งขึ้น เพื่อให้คอมพิวเตอร์เตรียมที่ในหน่วยความจำไว้สำหรับเก็บข้อมูลที่นำไปประมวลผลชื่อตัวแปรในภาษา PHP จะเริ่มต้นด้วยเครื่องหมาย dollar ($) • ไม่ต้องประกาศและกำหนดแบบของข้อมูล(data type) อย่างเจาะจงเหมือนในภาษาซี หรือ ปาสคาล • ตัวแปลภาษาจะจำแนกเองโดยอัตโนมัติว่า ตัวแปรดังกล่าว ใช้ข้อมูลแบบใดในช่วงเวลานั้นๆ

  3. การกำหนดค่าให้ตัวแปร • การกำหนดค่าให้กับตัวแปรจะใช้คำสั่งกำหนดค่า (Assigment Statement) รูปแบบมีดังนี้ $ชื่อตัวแปร = ค่าที่เก็บ ; $mystring = "Hello World!"; $myinteger = 72; $myfloat = 3.14; echo "$mystring\n"; echo "$myinteger\n"; echo "$myfloat\n";

  4. ตัวอย่าง var2-0.php <? $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

  5. ชนิดของตัวแปรในภาษา PHP • ตัวแปรในภาษา PHP จำแนกได้เป็น 3 ชนิดคือ • Scarlar varible • Array variable • Object variable

  6. Scarlar variable • ตัวแปรสเกลาร์คือตัวแปรที่ใช้เก็บข้อมูล ที่เป็นจำนวนเต็ม (Integer), จำนวนทศนิยม (floating point)หรือ สตริงก์ (String)

  7. ตัวอย่าง var2-1.php <? // 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!'; echo “$str_magazine_title”; ?> 46 PHP is good!

  8. ตัวอย่างvar-2.php <? // 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

  9. ตัวแปรอาร์เรย์ (Array Variables) • ตัวแปรอาร์เรย์ในภาษา PHP เป็นตัวแปรที่ใช้เก็บข้อมูลที่เป็นชนิดเดียวกันหรือต่างชนิดกัน ลักษณะการเก็บจะเป็นชุดหรือเป็นแถวเรียงต่อกัน.. การกำหนดตัวแปรแบบอาร์เรย์ในภาษา PHP กำหนดโดยเครื่องหมาย $นำหน้าชื่อของตัวแปรนั้น • แบบที่ 1 $arr_zoo[‘perican’] = ‘ Bird with a big beak.’ ; $arr_zoo[‘cheetah’] = ‘ Fast cat.’ ; $arr_zoo[‘horse’] = ‘ Four-legged animal.’ ;

  10. แบบที่ 2 $arr_names[] = ‘Mitch’ ; $arr_names[] = ‘Gerry’ ; $arr_names[] = ‘Tim’ ; • แบบที่ 3 $key = ‘pelican’ ; $value = $arr_zoo[$key] ; หรือ $value = $arr_zoo[pelican] ;

  11. ตัวอย่าง var2-3.php <? function dump_array($var) { switch (gettype($var)) { case 'integer': case 'double': case 'string': echo $var; break; case 'array': echo '<table border="1">'; do { echo '<tr><td align="left" valign="top">'; echo key($var); echo '</td><td>'; dump_array($var[key($var)]); echo '</td></tr>'; } while (next($var));

  12. echo '</table>'; break; default: echo 'Unknown data type.'; break; } } $arr_zoo = array( 'Pelican' => 'Bird with a big beak.' ,'Cheetah' => 'Fast cat.' ,'Horse' => 'Four-legged animal.' ); dump_array($arr_zoo); ?>

  13. 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_sizeger man.” ;

  14. 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

  15. การกำหนดค่าคงที่(Constants) • ในภาษา PHP มีการกำหนดสัญลักษณ์ให้เก็บค่าคงที่ เช่นอาจจะเป็นสตริงก์หรือตัวเลขก็ได้ • กำหนดโดยใช้ คำสั่ง define()สัญลักษณ์ที่กำหนดโดยคำสั่ง define() จะเหมือนกันตัวแปรทั่วๆไปแต่แตกต่างตรงที่ว่า เมื่อนิยามแล้วจะเปลี่ยนแปลงค่าอีกไม่ได้

  16. ตัวอย่าง var2-30.php <HTML> <HEAD> <TITLE>Figure 2-7</TITLE> </HEAD> <BODY> <? define("STANDARD_GREETING", "Hello, World!"); print(STANDARD_GREETING); ?> </BODY> </HTML> Hello, World!

  17. ตัวอย่าง var2-31.php <? 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

  18. การอ่านและแปลงแบบข้อมูลในตัวแปรหรือค่าคงที่แบบเจาะจงการอ่านและแปลงแบบข้อมูลในตัวแปรหรือค่าคงที่แบบเจาะจง เราสามารถแปลงแบบข้อมูลจากแบบหนึ่งไปยังอีกแบบหนึ่ง (type casting) เช่นแปลงจากข้อความที่มีเฉพาะตัวเลขให้กลายเป็นเลขจำนวนเต็ม (int) หรือทศนิยม(double, float, real) หรืออาจจะใช้คำสั่ง settype()

  19. ตัวอย่างvar2-32.php <? $x = ((double)"100.1") + 0.3e+3; echo $x," <BR>\n"; echo ($x=(int)$x)," <BR>\n"; $x = "P".$x."\n"; echo $x," <BR>\n"; $x= ceil(13.45);  /* get integer part */ echo $x," <BR>\n"; if (!settype( $x, "integer") ) {   echo "error\n"; } echo $x," $x%5=",($x%5)," <BR>\n"; ?> 400.1 400 P400 14 14 14%5=4

  20. ตัวอย่าง2-2.php <HTML> <HEAD> <TITLE> Using settype </TITLE> </HEAD> <BODY> <? print("<B>Using settype</B><BR>\n"); $AverageTemperature = "60.5 degrees"; print("String: $AverageTemperature <BR>\n"); settype($AverageTemperature, "double"); print("Double: $AverageTemperature <BR>\n"); settype($AverageTemperature, "integer"); print("Integer: $AverageTemperature <BR>\n");

  21. settype($AverageTemperature, "string"); print("String: $AverageTemperature <BR>\n"); print("<BR>\n"); print("<B>Using strval, intval, "); print("and doubleval</B><BR>\n"); $AverageTemperature = "60.5 degrees"; print("String: "); print(strval($AverageTemperature)); print("<BR>\n"); print("Double: "); Using settype String: 60.5 degrees Double: 60.5 Integer: 60 String: 60 Using strval, intval, and doubleval String: 60.5 degrees Double: 60.5 Integer: 60 String: 60.5 degrees

  22. print(doubleval($AverageTemperature)); print("<BR>\n"); print("Integer: "); print(intval($AverageTemperature)); print("<BR>\n"); print("String: "); print(strval($AverageTemperature)); ?> </BODY> </HTML>

  23. การอ่านแบบข้อมูลของตัวแปรหรือค่าคงที่การอ่านแบบข้อมูลของตัวแปรหรือค่าคงที่ ถ้าต้องการตรวจว่า ตัวแปรมีข้อมูลแบบใด เราสามารถใช้คำสั่ง gettype() ได้ ค่าที่ได้จากฟังก์ชันก็จะเป็น "integer" "double" หรือ "string" เป็นต้น

  24. ตัวอย่าง var2-33.php <? echo gettype(0),”<BR>\n"; echo gettype(1.1),”<BR>\n"; echo gettype(""),”<BR>\n"; echo gettype((1==1)),”<BR>\n"; $var="abc"; if ( gettype($var)=="string" ) {   echo "this is a string<BR>\n"; } ?> integer double string integer this is a string

  25. ตัวอย่าง var2-34.php unset($a); $a="hello"; if (is_string($a) == true) {   echo "\$a is a string <BR>\n"; } unset($a); $a[]="red"; $a[]="green"; $a[]="blue"; if (is_array($a) == true) {   echo "\$a is an array of size ",count($a),"<BR>\n"; } ?> $a is a string $a is an array of size 3

  26. การใช้ echo เพื่อแสดงข้อความ (เพิ่มเติม) การพิมพ์ค่าใดๆที่เก็บอยู่ในตัวแปร ถ้าชื่อของตัวแปรอยู่ในสตริงก์ระหว่างdouble quote เวลาแสดงผลลัพธ์แล้วจะอ่านค่าของตัวแปรนั้นก่อนแล้วจึงแทนที่ลงในข้อความ แต่ถ้านำหน้าด้วยbackslash (\) ก็จะไม่มีการอ่านค่าของตัวแปร เช่น "\$a" จะให้ผลต่างจาก "$a" 

  27. ตัวอย่าง var2-35.php <? $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"; ?> $a=1 testtesttest testtesttest 1+2=1+2 1+2=3

  28. ตัวอย่าง var2-36.php สำหรับข้อความในภาษา 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 \n

  29. คำสั่ง print ใช้แสดงค่าเช่นเดียวกับคำสั่ง echo แต่คำสั่ง print นั้นสามารถแสดงค่าได้ครั้งละหนึ่งค่าเท่านั้น รูปแบบคำสั่ง print (“ข้อความที่ต้องการแสดง“);

  30. ตัวอย่างvar2-5.php <? $Today = date("l F d, Y"); ?> <HTML> <HEAD> <TITLE>Example–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> Today's Date: Tuesday April 04, 2000 , you will be out 0 dollars this week.

  31. คำสั่ง printf • ใช้แสดงค่าเช่นเดียวกับคำสั่ง echo และคำสั่ง print แต่ printf สามารถกำหนดรูปแบบในการแสดงผลของข้อมูลได้ด้วย • รูปแบบคำสั่ง printf (”รูปแบบข้อมูล”, “ ข้อความที่ต้องการแสดง“, …);

  32. ตัวอย่าง var2-6.php <? $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

  33. ตัวดำเนินการ (Operators) • คือสัญลักษณ์ที่จะสั่งให้ PHP ดำเนินการกับตัวเลขหรือข้อความ • ตัวดำเนินการบางตัวจะดำเนินการกับตัวที่ถูกกระทำ(operand)เพียงตัวเดียวแต่บางตัวต้องมีตัวถูกกระทำสองตัว

  34. ตัวดำเนินการคณิตศาสตร์ (Arithematic Operations) • คือตัวดำเนินการที่กระทำกับตัวถูกดำเนินการที่เป็นตัวเลข มีดังนี้คือ สัญลักษณ์ ชื่อตัวอย่าง +Addition $a + $b -Subtraction $a - $b *Multiplication $a * $b /Division $a / $b % Modulus $a % $b

  35. ตัวอย่าง • ตัวอย่าง $a = ($b = 4) + 5;// $a มีค่าเป็น 9 และ $b มีค่าเป็น 4

  36. ตัวอย่าง var2-7.php <? for ($index = 1; $index <= 100; $index++) { if ($index % 10 == 0) { echo "$index<br>"; } } ?> 10 20 30 40 50 60 70 80 90 100

  37. การเพิ่มหรือลดค่าของตัวเลขในตัวแปรทีละหนึ่งการเพิ่มหรือลดค่าของตัวเลขในตัวแปรทีละหนึ่ง • ใช้เครื่องหมาย ++ และ - - เพื่อเพิ่มค่าทีละหนึ่งหรือลดค่าทีละหนึ่ง ดังนี้ $x++ เพิ่มค่าขึ้นอีกหนึ่ง ++$x เพิ่มค่าขึ้นอีกหนึ่ง $x-- ลดค่าลงอีกหนึ่ง --$x ลดค่าลงอีกหนึ่ง

  38. ตัวอย่าง $a = 5; &b = $a++; echo “ a = $a<BR>”; echo “ b = $b<BR>”; a = 6 b = 5

  39. ตัวอย่าง $a = 5; &b = -$a++; echo “ a = $a<BR>”; echo “ b = $b<BR>”; a = 6 b = -5

  40. ตัวดำเนินการสตริงก์ (String Operations) คือตัวดำเนินการที่ใช้ในการเชื่อมข้อความหลายข้อความให้เป็นข้อความเดียว ภาษา PHP มีตัวดำเนินการสตริงก์เพียงตัวเดียวคือจุด (" .") ดังตัวอย่างเช่น $a = "Hello !"; $b = $a . "World !" ; // $b จะมีค่าเท่ากับ Hello World !

  41. ตัวดำเนินการ Bitwise เป็นตัวดำเนินการที่ใช้กระทำกับค่าข้อมูลในระดับบิตได้ โดยค่าของข้อมูลที่เก็บเป็นเลขฐานสิบจะเปลี่ยนมาเป็นเลขฐานสอง 2 ค่าคือจริงและเท็จ

  42. สัญลักษณ์ของตัวดำเนินการ Bitwise สัญลักษณ์ ชื่อ หมายเหตุ & And And | Or Or ~ Not Not ^ Xor Exclusive Or << - Shift left >> - Shift right

  43. ตัวอย่าง $int_a = 128 ; $int_b = $int_a >> 2 ; echo “$int_b <BR>” ; ส่วนของโปรแกรมนี้แสดงผลลัพธ์คือ 32

  44. ตัวอย่าง $int_a = 128 ; $int_b = $int_a << 3 ; echo “$int_b <BR>” ; ส่วนของโปรแกรมนี้แสดงผลลัพธ์คือ 1024

  45. ตัวดำเนินการตรรก (Logical Operators) • เป็นตัวดำเนินการที่ใช้กระทำกับค่าข้อมูลที่มีค่าได้ 2 ค่าคือจริงและเท็จ • สัญลักษณ์ของตัวดำเนินการตรรก สัญลักษณ์ ชื่อ ตัวอย่าง and And $a and $b or Or $a or $b xor Xor $a xor $b ! Not ! $a && And $a && $b || Or $a || $b

  46. ตัวอย่าง If ($int_a ==9 || $int_a ==10) { echo “Error!<BR>”;

  47. ตัวดำเนินการเงื่อนไข(Conditional Operators) คือตัวดำเนินการที่ใช้การเปรียบเทียบข้อมูลเพื่อสร้างเงื่อนไข == equal != not equal <> not equal < less than <= less than or equal > greater >= greather or equal

  48. The Ternary Operator • รูปแบบคือ (expr1) ? (expr2) : (expr3) • การนำไปใช้ให้ดูที่ ค่าของ expr1ว่าเป็นจริงหรือเท็จ ถ้าเป็นจริง (มีค่ามากกว่า 0) ให้ ประมวลผล expr2 แต่ถ้า expr1เป็นเท็จ (มีค่าเป็น 0) ให้ ประมวลผล expr3 • ตัวอย่าง $bln_page_two = ($int_page_number == 2) ? 1 : 0 ;

  49. ลำดับการทำงานของตัวดำเนินการ (Operator Precedence) • การบอกให้ทราบว่าเครื่องหมายนี้จะมีวิธีการคิดไปทางขวาหรือทางซ้ายที่แตกต่างกัน เช่น 1 + 5 * 3 มีค่าเป็น 16 ไม่ใช่ 18 ต้องคิด จากซ้ายไปขวาเพราะ (" * ") เป็น Operation ที่เหนือกว่า (" + ") • พิจารณาว่าตัวดำเนินการตัวใดมีลำดับชั้นของ Precedence ต่ำกว่ากัน

  50. การกำหนดค่าของตัวแปรที่เป็นตัวเลขหรือสตริงก์ โดยใช้ assignment operators • การกำหนดค่า (assignment ) หรือเปลี่ยนแปลงค่าให้แก่ตัวแปรจะใช้ตัวดำเนินการกำหนดค่า (assignment operators) ได้ในหลายๆรูปแบบเหมือนอย่างที่ใช้ในภาษาซี เช่น $x=0; $x += 1;  // เหมือนกับ $x = $x + 1; $x--;  // เหมือนกับ $x = $x - 1; $x *= 3;  // เหมือนกับ $x = $x * 3; $x /= 2; //  เหมือนกับ $x = $x / 2; $x %= 4; // เหมือนกับ $x = $x % 4;

More Related