OOP in PHP part-2

August 16, 2018 | Author: Ford AntiTrust | Category: N/A
Share Embed Donate


Short Description

Download OOP in PHP part-2...

Description

OOP in PHP ตอนท   ตอนท22 สวสดครบ สหรบในตอนท 2 น นเรจะน เ รจะนเขสเรองทยกขนอกระดบจกตอนท บจกตอนทแลว เพระเรได เพระเร ไดปรบพ บพนในกร นในกร เขยนโปรแกรมแบบเช) ยนโปรแกรมแบบเช)งว งวตถ+ ตถ+มบ มบงแล งแลว และไดทรบถ ทรบถงค งคท   ทมมกถ ก ถกใช กใช ในกรเขยนโปรแกรมแบบเช) ยนโปรแกรมแบบเช)งว งวตถ+ ตถ+ซซ  งได ง ไดแก แก แมแบบ แบบ (Class กรหอห+  อห+ มข มขอม อมล(Encapsulation ล(Encapsulation ลกแบบ กแบบ (Sub-Class กรสบทอด บทอด (Inheritance วตถ+ ตถ+ (Object กรทหลยร หลยรปแบบ ปแบบ (Polymorphism กรสงข งขอควม อควม (Messaging ค+ณสมบ ณสมบต)ต) (Properties ขอควม อควม (Message แบบแผนพฤต)กรรม กรรม (MethodBehavior  โดยจกตอนทแลวน วนนกไดเขยนโปรแกรมแบบเบองตนไปแลวบงบงสวน แตหลย ๆ ทนทไดลองเขยนดตม ตวอยงแลวนนอจจะยงไมทรบถงประโยชนR และเหนภพในกรเอไปใชงนมกนก ในตอนนผผเขยนจะนเขส กรนไปใช ไปใชงนจร) งนจร)งมกข  งมกข น ●



















พฤตกรรมพ กรรมพ  นฐาน(Constructor นฐาน(Constructor Method Behavior) กอนท อนทเรจะน เรจะนไปใชงนจร)ง เรควรจะรถถง กรสรงพฤต)กรรมพนฐนของแมแบบนน ๆ ในบงครงแม งแมแบบนนจะ ถกน กนมสร มสรงว งวตถ+ ได ตถ+ ได ตองก องกหนดค+ หนดค+ณสมบ ณสมบต)ต)บงประกรให บงประกรใหอย   ในค อย ในคท   ทถถกต ก ตองเสมอต องเสมอต งแต งแตววตถ+ ต ถ+ถถก สรงข งข นม นม กรจะสรงพฤต) งพฤต)กรรมพนฐนบน น ฐนบน PHPน นกเหมอนกบกรสร บกรสรงพฤต)กรรมโดยท วไปเพ วไปเพยงแตใชชชอ พฤต)กรรมนน  ใหเหม เหมอนก อนกบช   บชอแม อแมแบบ แบบ ดงต งตวอย วอยงช+ งช+ดค ดคส ส  งต งตอไปน  อไปน  1. 2. 3. 4. 5. 6. 7. 8.

 

ช+ดค ดคส ส  งท   งท 1 ผ ผ เขยนจงขอยกตวอย วอยงจกตอนทแลวว วว เมอเรสร อ เรสรงวตถ+ ตถ+จกแมแบบมน+ษยRเรตองก องกหนดชอและเพศ รวมถง กหนดคเร)มตนของควมสง,น หนก และอย+ใหมมควมสง 170ซ.ม.,น 170ซ.ม.,นหน หนก 60ก.ก.และมอย+ 21ป^กกอนเสมอ จกช+ดค ดคส ส  งตอนท   งตอนทแล แลว เรนมปร มปรบปร+ บปร+งใหม ได งใหม ไดดดงน งน   1. 0  var $wei 6. $weigh ght t = 0; // weig weight ht > 0 7. = 0; // age > 0  var $age 8. function human($name, $sex){

9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45.} 46.?>

$this$this->se >setNa tName( me($na $name) me); ; $this->setSex($sex); $this->setHeight(170); $this->setWeight(60); $this->setAge(21); } function setName($value = 'human'){ $this->name = $value; } function setSex($value = 1){ $this->Sex = ($value==1 || $value==2 ? $value : 1); } function setHeight($value = 1){ $this->height = ($value > 0 ? $value : 1 ); } function setWeight($value = 1){ $this->weight = ($value > 0 ? $value : 1 ); } function setAge($value = 1){ $this->age = ($value > 0 ? $value : 1 ); } function getName(){ return $this->name; } function getSex(){ return ($this->Sex == 1 ? 'male' : 'female'); } function getHeight(){ return $this->height; } function getWeight(){ return($this->Sex == 2 ? 'No Answer':$this->weight); } function getAge(){ return($this->Sex == 2 ? 'No Answer':$this->age); }

ช+ดค ดคส ส  งท   งท 2 จกช+ดคสงท 1น นบรรทดท 8–14เรไดททกรเพ)มพฤต)กรรมมตรฐน โดยเมอเรสมรถวตถ+ขขนมเร ตองใส องใสขขอม อ มลมตรฐนลงไปด ลมตรฐนลงไปดวย วย ซ  ซงในท   งในทน น กกคค อช   อชอและเพศ อและเพศ ตมลด ดบ โดยกรนไปใช ไปใชงนก งนกจะได จะไดดดงน  งน  1. 2. 3. 4. 5. 6.

$som $somsa sak k = new human ('Somsak', ('Somsak', 1); echo 'Name : '.$somsak->getName().''; echo 'Sex : '.$somsak->getSex().''; echo 'Height : '.$somsak->getHeight().''; echo 'Weight : '.$somsak->getWeight().''; echo 'Age : '.$somsak->getAge().'';

ช+ดค ดคส ส  งท   งท 3

ซ  งจกต งจกตวอย วอยงช+ งช+ดค ดคส ส  งท  งท  3เรจะไดผลกรท ผลกรทงนท   งนท 1 Name : Somsak Sex : male Height : 170 Weight : 60 Age : 21

ผลกรทงนท งนท 1 จกช+ดคสงท  2และ 3และผลกรทงนท งนท 1น นจะเห นจะเหนไดววเม เมอเรสรงวตถ+ขขนม 1วตถ+ตตวพฤต) วพฤต)กรรมมตร ฐนจะทกรกหนดค เร) เร)มต มตนของวตถ+ ตถ+นน น ๆ ใหททนท รวมไปถงคบงค ท ทจจ เปนตองมในกรสรงวตถ+ขขนม นม ซ ซ งท  ใหเรสมรถน เรสมรถนไปประย+กตRใชไดหลย ๆ งนทตตองกรใชคค พนฐนทซซ ๆ กนตลอดเวล ซงชวยใหเรไม ตตองม  ใสคคต  ตง ง ๆ ตลอดเวลใหเป เปนค นคมตรฐนเสมอ มตรฐนเสมอ ๆ

นาแนวค าแนวคดเช ดเชงว1 งว1ตถ3 ไปใช7 ตถ3 ไปใช7งานจร งานจรง จกตวอย วอยงทแลวทเรเขย นโปรแกรมเล ก ๆ แลวสรงว งวตถ+ ตถ+ขข นม 2วตถ+ใหมมค+ค+ณสมบต)ตแ) ตกตงกนในเรองเพศ ทให ใหมมพฤต) พ ฤต)กรรมในกรแสดงออกของต กรรมในกรแสดงออกของตวว ววตถ+ ตถ+แตกต แตกตงก งกนตมท   ได นตมท ไดกล กลวไปแล วไปแลวในตอนท   วในตอนทแล แลว ครวน  ครวน เรมเขยนโปรแกรมเลก ๆ 1ตวท  วท เอไว ใช ในกรบอกวนและเวลโดยอศยฟ ยฟงกRชชนพ  นพ นฐนของ PHPเปน ค+ณสมบต)ตภ) ยใน โดยทเรสรงวตถ+ ตถ+แลว เรไมจจเป เปนตองรววภยในทงนอย งนอยงไร เพยงแตสสง ใหสสง คนนออกมก เพยงพอต ยงพอตอกรน อกรนไปใช ไปใชงนได งนได เรมกหนดลกษณะของแม แบบก แบบกนเส นเสยกอนว อนวมลลกษณะแบบใด กษณะแบบใด โดยแมแบบเรจะใหช ช อว thai_datetimeโดย เปนแม นแมแบบท แบบท ใช   ในกรแสดงผลวนท นท และเวล โดยท  โดยท  แสดงผลใหเปนไปตมแบบไทย คอชอเดอนเปนภษไทยและป^ เปนป^ นป^ พ.ศ.โดยพ  พ.ศ.โดยพ นฐนของว นฐนของวนท   นทยยงคงเป งคงเปนป^ นป^ ค.ศ.ทให ใหงงยต ยตอกรน อกรนไปใช ไปใช โดยท   โดยทมมพฤต) พ ฤต)กรรมต กรรมตง ง ๆ ดงต งตอไปน  อไปน  4. ช  ชอย= . พฤต พฤต ก รร รรมมพพ  นฐาน(thai_datetime ) อย=อของเด อของเดอน( อน(short_month) จะมกรเรยกใชพฤต)กรรม ต1  งค=าว1นและ เม  อ ใสลล   ดบของเด อ นเขไปใน เวลาต งแต งแตเร)เร)มสร มสรงว งวตถ+ ตถ+ททนท โดยในพฤต) น ท โดยในพฤต)กรรมพ  กรรมพ น พฤต)กรรมน กรรมนแล แลวส วสงช   งชอย อยอของเด อของเดอนออกมให อนออกมใหเร เร ฐนน  ฐนน มมกรร กรรบค บคเร)  เร)มต มตนเข นเขมด มดวยหร วยหรอไม อไมก ได ก ได  5. ช  ชอเตD อเตDมของเด มของเดอน( อน(long_month) 2. ต1  งค= า ว1นและเวลา(set_datetime ) เม  อ ใสลล   ดบของเด อ นเขไปใน ถไมใสววนทเขมจะใหผลเปนวนทและ พฤต)กรรมน กรรมนแล แลวส วสงช   งชอเต อเตมของเด มของเดอนออกมให อนออกมใหเร เร เวลปจจ+บบน แตถถมกรใสววนทเข เ ขมจะแสดงผล 6. ส=งค= งค=าปF าปF((year) วนท นทและเวลในขณะน และเวลในขณะน นเป นเปนว นวนท   นทแบบไทย แบบไทย 7. ส=งค= งค=าเด าเดอน( อน( month) 3. แปลงค=าว1นทและเวลา( cast_datetime ) เปนกรแปลงค นกรแปลงคต ตวเลขทเป เ ปนรปแบบของ งค=าว1 าว1น( น(day) 8. ส=งค= วนทตตง ๆ ใหเปนคของวนทและเวลตมท งค=าช1 าช1  วโมง( วโมง(hour) 9. ส=งค= กหนดไว หนดไวซ  ซงได งไดแก แก งค=านาท านาท minute (( ) 10. ส=งค= dคอว อวนท นท   mคอเด อเดอน อน yคอป^ อป^ งค=าว าวนาท นาท((second ) 11. ส=งค= Hคอช อช  วโมง วโมง Mคอนท อนท Sคอว) อว)นท นท

  1. set_datetime($valuedate); 6. } 7. function set_datetime($valuedate) { 8. if(empty($valuedate)) 9. $this$this->da >datet tetime ime = date("Y-m-d H:i:s"); else 10. 11. $this->datetime = $valuedate; 12. } 13. function cast_datetime($value, $type) { 14. $value = strtotime($value); switch($type) { 15. case "d": return date("j", $value); 16. 17. case "m": return date("m", $value); 18. case "y": return date("Y", $value); 19. case "H": return date("H", $value); case "M": return date("M", $value); 20. case "S": return date("S", $value); 21. 22. } 23. } 24. function short_month($m_val =  NULL) { if(empty($m_val)) 25. 26. $m_val = $this->cast_datetime($this->datetime,"m"); 27. switch($m_val) { 28. case 1: return "ม.ค."; break; 29. case 2: return "ก.พ."; break; case 3: return "ม.ค."; break; 30. case 4: return "เม.ย."; break; 31. 32. case 5: return "พ.ค."; break; 33. case 6: return "ม.ย."; break; 34. case 7: return "ก.ค."; break; case 8: return "ส.ค."; break; 35. case 9: return "ก.ย."; break; 36. 37. case 10: return "ต.ค."; break; 38. case 11: return "พ.ย."; break; 39. case 12: return "ธ.ค."; break; default : return "ม.ค."; break; 40. 41. } 42. } 43. function long_month($m_val =  NULL) { 44. if(empty($m_val)) 45. $m_val = $this->cast_datetime($this->datetime,"m"); switch($m_val) { 46. 47. case 1: return "มกราคม"; break; 48. "; break; มภาพนธ นธ"; case 2: return "กมภาพ 49. นาคม"; break; case 3: return "มนาคม case 4: return "เมษายน"; break; 50. case 5: return "พฤษภาคม "; break; 51. 52. ถนายน น  ายน"; break; case 6: return "มถ 53. case 7: return "กรกฎาคม"; break; 54. งหาคม"; break; case 8: return "สงหาคม นยายน"; break; case 9: return "กนยายน 55. case 10: return "ตลาคม 56. ลาคม"; break; 57. กายน"; break; case 11: return "พฤศจกายน 58. นวาคม"; break; case 12: return "ธนวาคม 59. default : return "มกราคม"; break;

60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82.} 83.?>

} } function year($value =  NULL) { if(empty($value)) return $this->cast_datetime($this->datetime,"y")+543; else return $value+543; } function month() { return ($this->cast_datetime($this->datetime,"m")); } function day() { return $this->cast_datetime($this->datetime,"d"); } function hour() { return $this->cast_datetime($this->datetime,"H"); } function minute() { return $this->cast_datetime($this->datetime,"M"); } function second() { return $this->cast_datetime($this->datetime,"S"); }

ช+ดค ดคส ส  งท   งท 4 จกช+ดคสงท 4น นจะเหนว นวเรนเขฟงกRชชนพ นพนฐนของ น ฐนขอ ง PHPมใชงนในแมแบบอยมกมย ซงในงนทมม กรใชฟฟงกRชชนต นตง ๆ มก ม ก ๆ จะท ใหช+ช+ดคสงของเรนนอ นอนไดยก กรนเอมปรบปร+ บปร+งโดยกรใสล งในแมแบบ และสรงว งวตถ+ ตถ+นน นกล น กลบท บทให ใหดดเข เขใจง ใจงยมกข  ยมกข นไปอ นไปอก โดยกรใชงนน งนน นด ได นด ไดจกช+ จกช+ดค ดคส ส  งท งท 5 1. 2. 3. 4. 5. 6. 7.

day() , " " ,$x->short_month(), " " ,$x->year(); echo ''; $y = new thai_datetime("2005-1-20"); echo $y->day() , " " ,$y->short_month(), " " ,$y->year(); ?>

ช+ดค ดคส ส  งท   งท 5 11 ม.ค. 2550 20 ม.ค. 2548

ผลกรทงนท   งนท 2 จกช+ดคสงท 5น นจะเหนไดวว เรไดสรงวตถ+ม 2วตถ+ ตถ+คคอ xและ yโดยทวว ตถ+ xน นไมไดกกหนดพฤต)กรรม มตรฐน แตผลกรท ล กรทงนกออกมเปนวนท นทปปจจ+บบน (ณ.วนท นทเขยนบทควมส วนว วนวตถ+ yน นไดกกหนดพฤต)กรรม พ พ นฐนไว นฐนไวววเป เปนว นวนท   นท “20เดอนท อนท   1ป^ 2005”ผลท   ได 2005”ผลท ไดออกมค ออกมคอว อวนท   นท “20ม.ค.2548” จกตวอย วอยงกรน งกรนเอแนวค) เอแนวค)ดกรเข ดกรเขยนโปรแกรมเช) ยนโปรแกรมเช)งว งวตถ+ ตถ+มเข มเขยนแม ยนแมแบบว แบบวนท   นทนน นจะเห นจะเหนได นไดววเรสมรถน เรสมรถนเอส)   เอส)ง ท  ทเรต เรตองเข องเขยนซ ยนซ   ๆ มเขยนให ยนใหอย   อยรรปท   ป ทเอไปใช เอไปใชงนได งนไดงงยมกข ยมกขน  ในตอนตอไปเรจะมพดถงกรสบทอดแมแบบใหมมลลกแบบเปนทอด ๆ และกรนเอแนวค)ดนไปใชงนในด งนในดน กรเชอมตอฐนขอมลอยง MySQLใหสมรถนเอวตถ+ททเปนแมแบบของกรต)ดตอกบฐนขอมล MySQLน น เอมชวยในกรท วยในกรทงนก งนกบฐนข บฐนขอม อมลให ลใหงง ยมกข  ยมกข น และช+ดค ดคส ส  งท   งทเรใช เรใชดดสส นลงอย น ลงอยงเห งเหนได นไดชชดเลยท ด เลยทเด เดยว ยว

เอกสารอ7างอ างอง ●





PHP Manual, http://www.php.net,January2007 Zend PHP Certification Study Guide,ZendTechnologies,August2004 Concepts of Programming Languages (th Edition), obertW.Sebesta,April2005

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF