ข้ามไปที่เนื้อหาหลัก

PHP OOP เบื้องต้น (ผมว่าผมเกือบจะเข้าใจแล้วล่ะ - ^ ^ -)




PHP OOP


เรื่องของ Object-oriented programming เป็นเรื่องที่ต้องใช้เวลาศึกษา
แม้ทุกวันนี้เหมือนตัวผมจะเข้าใจมัน แต่เอาเข้าจริงๆ เวลาถามคำถามกลับตอบอะไรไม่ได้เลย

ถึงแม้จะพอเข้าใจใน PHP OOP เบื้องต้น แต่ส่วนที่เป็นแก่นของ OOP ก็ยังเข้าไม่ถึงอยู่ดี
โดยเฉพาะ Abstract Class และ Interface คืออะไร?

ทุกวันนี้ยังคงต้องค้นหา Google เพื่อแปลความหมายและอ่านคำอธิบายอยู่เรื่อย
ถึงกระนั้น ก็ยังพอมีความรู้ความเข้าใจได้เอามาบอกต่อกันอยู่บ้าง

วันนี้จะมาพูดถึงเรื่ององ Access Modifier ซึ่งสำคัญทีเดียวในการเขียน OOP
เพราะถ้าไม่เข้าใจ อาจจะทำให้งุนงงกับการ Error ที่เหมือนไม่มีอะไรให้ error
ในเวลาที่เรียกใช้ property หรือ method ที่ไม่อนุญาตให้เข้าถึงได้

ใน PHP จะมี visibility keyword เพื่อกำหนดการเข้าถึง
ตัวแปร (property) หรือ ฟังก์ชั่น (method)
ด้วยกันทั้งหมด 3 ตัวด้วยกัน คือ privateprotectedpublic

และความเข้มงวดในการป้องกันการเข้าถึงของ ตัวแปรในคลาส (property)  กับ ฟังก์ชั่น (method) จะต่างกันเล็กน้อย 

property  จะเข้าถึงจาก Class อื่นๆ ได้เฉพาะที่เป็น public
method จะเข้าถึงได้ทั้งที่เป็น public และ protected แต่ protected 
แต่ฟังก์ชั่นที่ protected ต้องเป็นการ extends จากคลาสนั้นๆถึงจะสามารถเรียกใช้ได้


ในส่วนนี้จะขอยกตัวอย่างของการใช้งานฟังก์ชั่น (method

public เหมือนพื้นที่สาธารณะ 
เช่น ห้องสมุด เราสามารถเข้าใช้ได้ตลอด เราสามารถตามใครก็ได้เข้าไปในห้องสมุด

protected เหมือนที่ทำงาน
เช่น เราจะตามใครสักคนเข้าไปในที่ทำงานเขาได้ไหม แน่นอนว่าไม่ได้หรอก แต่ถ้าเราเป็นพนักงานในบริษัทนั้นเราก็สามารถเข้านอกออกในได้สบายๆ 
นั่นก็คือการ extends คลาสหลักเพื่อขอเรียกใช้ฟังก์ชั่นภายในได้นั่นเอง

private เหมือนห้องนอนที่เป็นพื้นที่ส่วนตัว
ต่อให้เราเป็นเพื่อนพนักงานด้วยกัน (extends) ด้วยกัน แต่ก็ไม่สามารถปล่อยให้เข้าไปได้
ยกเว้นคนภายในครอบครัวเท่านั้น (parents) หรือก็คือ คลาสของตัวมันเอง


และนี่ก็คือตัวอย่างของ  Access Modifier ที่ใช้ควบคุมตัวแปร และ ฟังก์ชั่น
ภายใน Class เพื่อไม่ให้การทำงานของคลาสที่เราสร้างเกิดปัญหาจากผู้ใช้งานคนอื่นๆนั่นเอง


ศึกษาเรื่องราวของ PHP OOP เบื้องต้น ได้เพิ่มเติมที่
https://medium.com/nawawish/php-oop-basic-19d941f90d1a


PHP OOP - Access Modifiers
https://www.w3schools.com/php/php_oop_access_modifiers.asp





เครื่องมือทุ่นแรงสำหรับโปรแกรมเมอร์ PHP

http://fastcoding.phpcodemania.com/index.php/#pricing
ราคาสุดคุ้ม  
http://fastcoding.phpcodemania.com



ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ร้อยละ ทศนิยม 2 ตำแหน่งบวกคืน ไม่เท่ากับ 100 และ ปัญหาการคำนวณเลขทศนิยม เมื่อปัดเศษแล้วค่าที่บวกคืนไม่เท่าเดิม

กรณีนี้เป็นการทดสอบคำนวณเลขที่ต้องหารครึ่ง ตัวอย่างเช่น 2.33 / 2 = 1.165 กรณีนี้ถ้าเก็บค่านี้ในฐานข้อมูลที่กำหนดให้มีทศนิยมเพียง 2 หลัก ในฟิลด์ 2 ฟิลด์ซึ่งแต่ละฟิลด์จะถูกปัดขึ้นเป็น 1.7 เมื่อนำมาบวกกลับ 1.17 + 1.17 = 2.34 ถ้าอย่างนั้นเราก็ต้องกำหนดให้ฟิลด์ที่ใช้เก็บข้อมูลสามารถเก็บเลขทศนิยมได้หลายๆตัว ก็จะเก็บเลขทั้งสามหลักไว้ในฐานข้อมูลเลย 1.165 + 1.165 จะได้ 2.33 พอดี แต่ตอนเราแสดงรายงาน ก็จำเป็นจะต้องแสดงเลขทศนิยมเพียงแค่ 2 หลักอยู่ดี แล้วเราจะทำอย่างไรล่ะทีนี้ ก็เก็บมันเป็นเลขทศนิยมเต็มจำนวนซะแล้วตอนแสดงก็ต้องปัดเศษอยู่ดี เพราะค่า 1.165 ถ้าใช้ฟังก์ชั่นปัดเศษลง ก็จะเหลือ 1.16 แต่ถ้าปัดขึ้นก็จะเป็น 1.17 ซึ่งตัวเลขทั้งสองตัว เมื่อนำมารวมกัน ยังไงๆ ก็ไม่เท่ากับ 2.33 อยู่ดี (1.16+1.16 = 2.32,    1.17+1.17 = 2.34 ) อีกตัวอย่างนึงครับเป็นการถอด VAT ราคาสินค้า การคิดค่าทศนิยม แล้วผลรวมเพี้ยน เนื่องจากการปัดเศษ แล้วยอดเกินบ้าง ขาดบ้าง ตัวอย่างการถอด VAT ซื้อของมา 573.50 บาท ถอด VAT ออกมาได้ (573.50*7) / 100 = 40.145 ราคาสินค้า จะได้เป็น 573.50 - 40.145 = 533.3

FPDF ภาษาไทย กับ วรรณยุกต์ลอย

สำหรับงานเขียนโปรแกรมเว็บแอพฯ ด้วย PHP ที่ต้องทำการส่งออกข้อมูลเป็นไฟล์เอกสาร PDF นั้น เมื่อลองค้นดูแล้วก็เจอกับ FPDF เป็นคลาสที่เขียนขึ้นมาสำหรับงานนี้โดยเฉพาะ แต่กับภาษาไทยแล้วก็ต้องเจอกับปัญหาสุดคลาสสิคคือ รองรับภาษาไทยไม่ร้อยเปอร์เซ็นต์ ^^" บทความที่สอนการใช้งานเบื้องต้นที่ครอบคลุมการทำงานของ FPDF http://www.select2web.com/category/fpdf จะมีบทความแนะนำการใช้ฟอนต์ภาษไทยอยู่ที่ลิงค์นี้ http://www.select2web.com/fpdf/fpdf-lesson-10.html ดาวน์โหลดและสร้างฟอนต์มาใช้เอง http://witkub.blogspot.com/2011/11/fpdf.html สำหรับวิธีแก้ไขปัญหาวรรณยุกต์ลอย ลองดูวิธีจากที่นี่ http://punnawatt.blogspot.com/2009/07/pdf.html สุดท้ายแล้วลองทดลองมาหมด ก็ยังไม่ได้คำตอบที่ตรงใจครับ เพราะไม่สามารถแก้สระลอยได้อย่างแท้จริง เพราะเงื่อนไขข้อมูลจริงไม่อาจจะทำให้เหมือนในตัวอย่างได้ ก็เลยถอดใจเรื่องวรรณยุกต์ลอย นอกจากปัญหาเรื่องวรรณยุกต์ลอย แล้วฟอนต์บางตัวก็เกิดปัญหาวรรณยุกต์ซ้อนทับกันด้วย เช่นคำว่า "นี้" เมื่อผลลัพธ์ออกมา สระอี และวรรณยุกต์โท จะทับกัน สรุป 1. ดาวน์โหล

FPDI มาทำให้การสร้างเอกสาร PDF ด้วย PHP ง่ายขึ้นกันเถอะ

เคยใช้กันรึยังครับ เหมาะสำหรับงานสร้างแบบฟอร์ม PDF แล้วกรอกข้อมูลตามแบบฟอร์มทีหลัง หลักการคือโหลด PDF เข้ามา แล้วก็เขียนไฟล์ใหม่ขึ้นมา ส่วนที่มันไดนามิกมากๆ คงไม่เหมาะเท่าไหร่ ถ้าให้มองการทำงานของไลบรารี่ตัวนี้ ก็เหมือนกับที่เราสั่งทำใบเสร็จรับเงิน แล้วกรอกข้อมูลทีหลังนั่นเอง 1. สร้าง PDF เปล่าๆ ที่มีแค่ส่วนหัว และส่วนท้าย 2. เติมข้อมูลรายการลงในส่วนกลาง ถ้าเกินจำนวนแถวที่กำหนดให้ขึ้นหน้าใหม่ http://www.setasign.com/products/fpdi/about/ ตัวอย่างในลิงค์ต่อไปนี้ จะเป็นการนำข้อความในไฟล utf8test.txt ไปแทรกในไฟล์ logo.pdf http://www.setasign.com/products/fpdi/demos/tcpdf-demo/ PHP  CI  MANIA   -  PHP Code Generator  โปรแกรมช่วยสร้างโค้ด  "ลดเวลาการเขียนโปรแกรม" ราคาสุดคุ้ม    http://fastcoding.phpcodemania.com

PHP CI MANIA