public, private, และ protected ใน PHP OOP
เวลาที่เราเขียนคลาสในภาษา PHP เราสามารถกำหนดให้ตัวแปรและฟังก์ชั่นภายในคลาสได้ (รู้สึกว่าเค้าจะเรียกกันว่า method) ว่าจะให้สามารถเรียกใช้ได้จากที่ไหนได้บ้าง ซึ่งเราเรียกมันว่า Visibility ครับ โดยเราสามารถกำหนดได้อยู่ 3 แบบคือ
- public สามารถเรียกได้ทุกที่ ทั้งภายในและภายนอกคลาส
- private สามารถเรียกได้เฉพาะในคลาส
- protected สามารถเรียกได้เฉพาะในคลาส และคลาสที่ขยายคลาสนี้
เราสามารถสรุปเรื่อง visibility ได้สั้นๆดัง 3 ข้อด้านบนครับ ถ้าเข้าใจก็เรียกได้ว่าจบเนื้อหาตอนนี้ แต่ถ้ายังไม่เข้าใจ ลองไปดูตัวอย่างยาวๆ กันครับ
ตัวอย่างนี้จะเป็นโค๊ดของคลาสสองตัว โดยตัวที่หนึ่งจะมีการสร้างฟังก์ชั่นภายในเอาไว้สามตัว เป็นทั้ง public, private, และ protected ส่วนคลาสที่สองจะมาขยาย (extends) คลาสแรก เพื่อทดสอบการเรียกใช้ฟังก์ชั่นแบบ protected ครับ